2

M:N関係にAEntityとBEntityがあります。

dababaseには、ATable、BTable、ABRelationTableがあります。

ABRelationTableは次のように構築されます

Id                      Guid
ATableId                Guid
BTableId                Guid
AdditionalAttribute1    String
AdditionalAttribute2    String

次に、EntityFrameworkでAEntityInstanceを削除すると
、例外がスローされ、ABRelationTableのFKに違反します。

次のように:

The DELETE statement conflicted with the REFERENCE constraint "FK_AB_A". 
The conflict occurred in database "X", table "ABRelationTable", column 
'Id'.The statement has been terminated.

リレーションテーブルの対応する行を削除するにはどうすればよいですか

4

2 に答える 2

1

関係はSQLデータベーステーブルの削除時にカスケードされていますか?もしそうなら、あなたはEFでこれを行うことができ、それは世話をされます。参照してください... エンティティフレームワーク-IDで関連レコードを削除します

于 2012-12-04T09:15:59.003 に答える
1

B関連するを削除する必要がありますA

foreach(var b in a.Bs.ToList())
{
    a.Bs.Remove(b);
}

またはロードa.BsClear()てください。

重要なBのは、変更マネージャーが関連付けが切断されたことを知るために、最初に'をロードしてから、何らかの方法で削除する必要があるということです。

于 2012-12-04T08:08:03.527 に答える