相关疑难解决方法(0)

由于一个或多个外键属性不可为空,因此无法更改关系

当我在一个实体上使用GetById()然后将子实体的集合设置为来自MVC视图的新列表时,我收到此错误.

操作失败:无法更改关系,因为一个或多个外键属性不可为空.当对关系进行更改时,相关的外键属性将设置为空值.如果外键不支持空值,则必须定义新关系,必须为外键属性分配另一个非空值,或者必须删除不相关的对象.

我不太明白这一行:

由于一个或多个外键属性不可为空,因此无法更改关系.

为什么要更改2个实体之间的关系?它应该在整个应用程序的整个生命周期内保持不变.

发生异常的代码很简单,即将集合中已修改的子类分配给现有父类.这有望满足删除子类,添加新类和修改的需要.我原以为Entity Framework会处理这个问题.

代码行可以提炼为:

var thisParent = _repo.GetById(1);
thisParent.ChildItems = modifiedParent.ChildItems();
_repo.Save();
Run Code Online (Sandbox Code Playgroud)

entity-framework entity-framework-4.1

179
推荐指数
7
解决办法
15万
查看次数