我正在尝试使用EntityFramework 4删除一系列实体。这是我正在使用的代码:
var role = (
from r in context.tblAdminRoles
where r.AdminRoleId == this.Role.AdminRoleId
select r
).First();
this.AdminUser.tblAdminRoles.Remove(role);
context.SaveChanges();
context.tblAdminRoles.Remove(role);
context.SaveChanges();
但是,当我执行它时,我收到以下错误:
DELETE语句与REFERENCE约束
"FK_tblAdminUserRole_tblAdminRole"
冲突。冲突发生在数据库"MyMainSite2"
,表"dbo.tblAdminUserRole"
,列'AdminRoleId'
。声明已经终止。
我的数据库具有以下结构:
---------------- -------------------- ----------------
| | | | | |
| tblAdminUser | ---< | tblAdminUserRole | >--- | tblAdminRole |
| | | | | |
---------------- -------------------- ----------------
有人能指出我可能出现问题的正确方向吗?
答案 0 :(得分:4)
检查数据库中是否为引用链接表tblAdminUserRole
的两个关系启用了级联删除,尤其是FK_tblAdminUserRole_tblAdminRole
到tblAdminRole
表。看起来它没有启用,因此删除角色不会删除链接表中最终导致FK约束违规的条目。