最初にエンティティ フレームワーク 5 コードで構築されたアプリケーションがあり、既存のデータベースに対して最初にコードを使用しています。Foo と Bar の 2 つのエンティティがあり、2 つのテーブルのそれぞれに外部キーを持つ SQL Server のテーブルを使用して、多対多の関係で接続されています。コードでは、2 つのエンティティ タイプはそれぞれ他方のコレクションを持ち、dbcontext では次のように一緒にマップされます。
modelBuilder.Entity<Foo>()
.HasMany(e => e.Bars)
.WithMany(s => s.Foos)
.Map(l =>
{
l.ToTable("FooBar");
l.MapLeftKey("FooId");
l.MapRightKey("BarId");
}
);
問題は、コレクションにお互いを追加して保存することでエンティティ間の関係を追加できることですが、逆にコレクションからお互いを削除すると、関係テーブルのレコードが削除されません。