【发布时间】:2019-11-20 14:07:48
【问题描述】:
在我的模型中,我有类似的表格:
Persons (ID-NAME)例如(1-保罗 - 2-弗兰克 - 3-乔治)Roles (ID-NAME)例如(1-管理员 - 2-开发人员 - 3-初级)Persons_Roles (ID_PERSON Not Null- ID_ROLE 不为空,例如(1-1 - 1-2 - 2-3 - 2-1 - 3-2)
表Persons_Roles 在Persons 和Roles 表上都有一个外键。
我需要删除一个角色。我真的有
Persons oP = DbContext.Persons.Single(p=>p.ID == 1);
Persons_Roles oR = oP.Persons_Roles.Single(p=>p.ID_ROLE == 2);
oP.Persons_Roles.Remove(oR);
DbContext.SaveChanges();
但是我得到了这个错误
操作失败:无法更改关系,因为一个或多个外键属性不可为空。当对关系进行更改时,相关的外键属性将设置为空值。如果外键不支持空值,则必须定义新关系,必须为外键属性分配另一个非空值,或者必须删除不相关的对象。
为什么我会收到此错误,我该如何解决?
【问题讨论】:
-
我需要删除一个角色 -- 你的意思是
Role还是Person_Role? -
嗨,Person_Role 不是 Role,我打错了
标签: c# entity-framework-6 db-first