リンク テーブルによって関連付けられている既存の (MSSQL 2008 R2) データベースに 2 つのテーブルがあります。
2 つのテーブルは、「プラン」と「ヒント」です。リンク テーブルは「PlanTipLinks」です。
プランには多くのヒントを含めることができ、ヒントは複数のプランに関連付けることができます (つまり、多対多の関係です)。アプリケーションでは、「Plan.Tips」の関係のみを気にします。Tip.Plans の逆関係は必要ありません。
リンク テーブル内の外部キー参照を null にすることはできません。
この関係をマッピングするために、次の流暢な API コードを使用しています。
modelBuilder.Entity<Plan>()
.HasMany(p => p.Tips)
.WithMany()
.Map("PlanTipLinks", (p, t) =>
new
{
PlanId = p.Id,
TipId = t.Id
});
これにより、テーブルに正しいエントリが作成されます。問題は、プランを削除すると、PlanTipLinks テーブルで外部キー例外が発生することです。
おそらく、プランが削除されたときに PlanTipLinks テーブルにカスケードするように指示する必要がありますが、その方法がわかりません。HasMany/WithMany メソッドを使用して WillCascadeOnDelete メソッドを呼び出すことができないようです。
ここで何が欠けていますか?