2016-07-14 49 views
-1

私はクラスがありますTeam HomeTeam Guest存在する別のクラス。Entity Framework - "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)です。ステートメントは 終了しました。

私は@DevilSuichiroが正しく述べたようにTeamsが既に

+0

すべてのナビゲーションプロパティも追加されているため、ナビゲーションプロパティの一部に同じチームが存在している可能性があります。一致を追加したいだけの場合は、それらのナビゲーションプロパティをnullに設定します(そのままFKをそのままにします)。 – DevilSuichiro

答えて

0

を存在する場合、あなたはあなたのナビゲーションプロパティを記入する必要はありません試合を追加する方法を知りません。

public virtual int HomeId { get; set; } 

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

そして、あなたは新しい Matchを追加する必要があるときにだけ HomeIdを記入し、それをデータベースに再び追加されることはありませんので nullHomeプロパティを設定します。このようなあなたのナビゲーションプロパティのすべての外部キーを追加します。

関連する問題