2016-07-14 139 views
-1

我有班,其中Team HomeTeam Guest另一类存在。实体框架 - 如何解决“违反PRIMARY KEY约束”错误?

public class Match 
{ 
    [DataMember] 
    public Guid Id { get; set; } 
    [DataMember] 
    public virtual Tour Tour { get; set; } 

    [DataMember] 
    public DateTime DateMatch { get; set; } 

    [DataMember] 
    public virtual Team Home { get; set; } 
    [DataMember] 
    public virtual Team Guest { get; set; } 

    [DataMember] 
    public virtual Result Result { get; set; } 
} 

当我尝试添加Match

违反PRIMARY KEY约束 'PK_dbo.Teams' 的。不能在对象'dbo.Teams'中插入 重复键。重复键值为 (06f67648-f904-4a4e-8ceb-33c204d8267c)。该声明已被终止 。

我不知道该如何在那里Teams已经存在

+0

由于所有导航属性都添加了,所以您可能在某些导航属性中拥有相同的团队。如果您只想添加匹配项,请将这些导航属性设置为空(将FK保留原样),这样就不会再添加这些导航属性。 – DevilSuichiro

回答

0

由于@DevilSuichiro正确提到的加赛,你不需要填写您的导航性能。添加外键所有导航性能是这样的:

public virtual int HomeId { get; set; } 

[DataMember] 
[ForeignKey("HomeId")] 
public virtual Team Home { get; set; } 

然后当你需要添加一个新的Match只需填写HomeId并设置Home属性null所以它不会被重新添加到数据库中。

相关问题