首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法更改关系,因为一个或多个外键属性不可为空

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

Stack Overflow用户
提问于 2011-04-04 21:13:28
回答 21查看 178.4K关注 0票数 206

当我对一个实体执行GetById()操作,然后将子实体的集合设置为来自MVC视图的新列表时,我得到了这个错误。

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

我不太明白这句话:

无法更改关系,因为一个或多个外键属性不可为non。

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

发生异常的代码只是简单地将集合中修改过的子类分配给现有的父类。这将有望满足删除子类、添加新类和修改类的需要。我本以为Entity Framework会处理这个问题。

代码行可以提炼为:

代码语言:javascript
复制
var thisParent = _repo.GetById(1);
thisParent.ChildItems = modifiedParent.ChildItems();
_repo.Save();
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5538974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档