当前位置:  开发笔记 > 编程语言 > 正文

EF6:使用外键关系修改实体属性-我是否需要更改ID或相关对象,或两者都更改?

如何解决《EF6:使用外键关系修改实体属性-我是否需要更改ID或相关对象,或两者都更改?》经验,为你挑选了0个好方法。

我仅通过修改ID来修改代码中实体的外键属性:

ElementData.ServiceLevelId = parameter.ServiceLevelId;

坚持后,我发现当相应的导航属性ServiceLevelnull偶然的时候,这只能按预期工作。如果它仍然保留“旧”对象,则更改将不会影响数据库。

这意味着,我需要做

ElementData.ServiceLevelId = parameter.ServiceLevelId;
ElementData.ServiceLevel = null; //Force the update to the Database

这是否意味着更改对象比仅更改ID“更强大”?在这种情况下,是否应该始终将相关对象设置为null?

更新(根据Tim Copenhaver的评论):所讨论的实体是现有实体的副本(具有上述修改)。它使用Automapper进行复制,并映射除主键和一个无关属性以外的所有内容。自动映射器将创建浅拷贝AFAIK。因此,副本的情况将是在将更新的ID和未修改的对象引用添加到上下文时不匹配。我猜想,EF然后决定“对象引用更强”。

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有