实体框架 - 从m:n关系中删除M行

时间:2012-12-04 07:57:04

标签: c# entity-framework entity-framework-4 entity-relationship

我在M:N关系中拥有AEntity和BEntity。

在我的dababase中      一张桌子,      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.

如何删除关系表中的相应行

2 个答案:

答案 0 :(得分:1)

您必须从B

中删除关联的A
foreach(var b in a.Bs.ToList())
{
    a.Bs.Remove(b);
}

或加载a.BsClear()

关键是必须首先加载B,然后以某种方式删除,以便变更经理知道关联被切断。

答案 1 :(得分:1)

关系是否在SQL数据库表中删除级联?如果是这样,你可以在EF中这样做,它将被处理。 看到... Entity framework - remove related records by id