Entity Framework - 如何修复 "Violation of PRIMARY KEY constraint" 错误?

Entity Framework - How to fix the "Violation of PRIMARY KEY constraint" error?

我有 class,其中 Team HomeTeam Guest 存在另一个 class。

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:

Violation of PRIMARY KEY constraint 'PK_dbo.Teams'. Cannot insert duplicate key in object 'dbo.Teams'. The duplicate key value is (06f67648-f904-4a4e-8ceb-33c204d8267c). The statement has been terminated.

我不知道如何在 Teams 已经存在的地方添加匹配项

正如@DevilSuichiro 正确提到的那样,您不需要填写导航属性。像这样为所有导航属性添加外键:

public virtual int HomeId { get; set; }

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

然后当你需要添加一个新的 Match 时,只需填充 HomeId 并将 Home 属性 设置为 null 这样它就不会被重新添加到数据库中。