级联删除,同一表,实体框架4代码优先

时间:2011-02-08 04:40:24

标签: entity-framework-4 code-first

您好我正在使用.sdf数据库(Server Compact版本4.0)和sql express。我试图在同一个表(类别 - 子类别)上设置级联删除,但我得到了我不能添加到同一个表的关系。

  

外键约束有和   更新或删除级联规则,和   自引用同一列   表,不允许

我该怎么办?

修改
我是唯一有这个问题的人吗?

1 个答案:

答案 0 :(得分:5)

正如您的SQLException建议的那样,这通常是SQL Server的限制,与EF或Code First无关。基本上,SQL Server不允许在内部关系上创建级联操作 - 当级联路径从表A中的列col1到表A中的列col2时 - A-> A。

事实上,Code First试图使用Declarative Referential Integrity (DRI)来强制执行级联删除和SQL Server抛出。

强制执行此关系的级联删除的唯一方法是使用触发器。您可以在类别表上编写删除触发器,删除依赖行或将所有相应的外键设置为NULL(根据您的要求)。