私はこのSOの質問を見ました。
EF 5で同様のことをしたいのですが、ForeignKey属性は表示されませんが、EF5ではAssociation属性が表示されます。
また、誰かがこれが何を意味するのか/意味するのか説明できますか?
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Match>()
.HasRequired(m => m.HomeTeam)
.WithMany(t => t.HomeMatches)
.HasForeignKey(m => m.HomeTeamId)
.WillCascadeOnDelete(false);
modelBuilder.Entity<Match>()
.HasRequired(m => m.GuestTeam)
.WithMany(t => t.AwayMatches)
.HasForeignKey(m => m.GuestTeamId)
.WillCascadeOnDelete(false);
}
これは説明です:
主キーはデフォルトの規則でマップされます。チームには2つの試合のコレクションが必要です。2つのFKによって参照される単一のコレクションを持つことはできません。一致は、多対多のこれらの自己参照では機能しないため、カスケード削除なしでマップされます。
私がやりたいことはリンクの例と非常に似ていますが、わかりません:
- DbContextを変更する必要がある場合
- 主キーが相互にリンクするタイミング
- 関係を作成するために明示的にAssociationを使用する必要がある場合
説明をいただければ幸いです。