1

我正在尝试使用 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 |
|              |      |                  |      |              |
----------------      --------------------      ----------------

谁能指出我可能出问题的正确方向?

4

1 回答 1

4

Check if cascading delete is enabled in the database for the two relationships refering to the link table tblAdminUserRole, especially for the FK_tblAdminUserRole_tblAdminRole to the tblAdminRole table. It looks like it isn't enabled, therefore deleting the role doesn't delete the entries in the link table which finally leads to the FK constraint violation.

于 2012-09-07T16:15:37.997 回答