您好我正在使用.sdf数据库(Server Compact版本4.0)和sql express。我试图在同一个表(类别 - 子类别)上设置级联删除,但我得到了我不能添加到同一个表的关系。
外键约束有和 更新或删除级联规则,和 自引用同一列 表,不允许
我该怎么办?
修改
我是唯一有这个问题的人吗?
答案 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(根据您的要求)。