gpt4 book ai didi

c# - 从 EntityFramework 4 中的多对多关系中删除

转载 作者:太空宇宙 更新时间:2023-11-03 21:55:53 24 4
gpt4 key购买 nike

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

但是,当我执行它时,出现以下错误:

The DELETE statement conflicted with the REFERENCE constraint "FK_tblAdminUserRole_tblAdminRole". The conflict occurred in database "MyMainSite2", table "dbo.tblAdminUserRole", column 'AdminRoleId'.

The statement has been terminated.

我的数据库结构如下:

----------------      --------------------      ----------------
| | | | | |
| tblAdminUser | ---< | tblAdminUserRole | >--- | tblAdminRole |
| | | | | |
---------------- -------------------- ----------------

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

最佳答案

检查是否在数据库中为引用链接表 tblAdminUserRole 的两个关系启用了级联删除,特别是对于 FK_tblAdminUserRole_tblAdminRoletblAdminRole 表。看起来它没有启用,因此删除角色不会删除链接表中的条目,最终导致 FK 约束违规。

关于c# - 从 EntityFramework 4 中的多对多关系中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12320925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com