实体框架4参照已存在的对象添加实体

康拉德

我在通过导航器向引用中添加一个新实体时,对实体框架4遇到了问题。请看一下代码:

            ControlPolicy cp1 = new ControlPolicy()
            {
                ControlPolicyLevelType = 2, //full access to NA
                MemberState = context.Countries.First(tt => tt.IsMemberState),
                OperaModuleType = 2,
                MemberStateIncluded = true,
                CreateDate = DateTime.Now,
                CreatedByUserId = 1,
            };
            context.ControlPolicies.AddObject(cp1);

            context.SaveChanges();

错误是:

来自“ ControlPolicy_MemberState_Country_” AssociationSet的关系处于“已添加”状态。给定多重性约束,相应的“国家”也必须处于“已添加”状态。

当我查看ChangeTracker时,ControlPolicy对象实际上处于“已添加”状态,而“国家/地区”对象则处于“未定义”状态。我认为这是正确的-毕竟我不添加任何新对象,我只想引用现有的国家/地区。

康拉德

在这种特殊情况下,错误是由于错误的EF模型造成的。MemberState和Country的关系为1-1,因此对于EF而言,很明显,在添加ControlPolicy时,还必须定义一个新的MemberState(国家)。一旦将导航器关系更改为适当的m:1 MemberState:Country,一切便开始工作。

此外,我发现Rui Jarimba FK建议非常好。即使这里不是问题,并且由于使用ChangeTracker而不适用于我的情况。显然,ChangeTracker不会知道通过FK进行的更改。但是,在任何其他情况下,使用外键都是非常方便和有用的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

实体框架4参照已存在的对象添加实体

来自分类Dev

实体框架:具有相同键的对象已存在于objectstatemanager中

来自分类Dev

实体框架是否看到数据库中已存在的对象内部的属性更改?

来自分类Dev

实体框架:具有相同键的对象已存在于objectstatemanager中

来自分类Dev

实体框架核心:如何添加复合对象?

来自分类Dev

实体框架核心:如何添加复合对象?

来自分类Dev

实体框架添加新实体

来自分类Dev

实体框架Web或实体对象

来自分类Dev

实体框架和添加POCO而不添加子对象

来自分类Dev

实体框架附加:具有相同键的对象存在

来自分类Dev

无法将嵌套对象保存在实体框架中

来自分类Dev

实体框架核心添加具有已保存依赖关系的实体会引发错误

来自分类Dev

实体框架添加和删除实体?

来自分类Dev

实体框架嵌套实体添加或更新

来自分类Dev

实体框架-添加实体时DbUpdateException

来自分类Dev

实体框架添加所有子实体

来自分类Dev

找不到引用实体框架实体的对象

来自分类Dev

使用反射将对象动态添加到实体框架

来自分类Dev

Linq使用实体框架“添加新”和“删除旧”对象

来自分类Dev

是否可以添加对象列表以更改实体框架的状态

来自分类Dev

动态将属性添加到实体框架对象

来自分类Dev

使用多对多关系添加对象实体框架

来自分类Dev

实体框架未添加[键]

来自分类Dev

实体框架迁移添加失败

来自分类Dev

WHERE IN 子句 AS 对象实体框架

来自分类Dev

实体框架无需加载即可将对象添加到相关实体

来自分类Dev

实体框架4:添加和保存实体的最佳方法是什么?

来自分类Dev

实体框架4:无效的列名

来自分类Dev

实体框架4:无效的列名

Related 相关文章

热门标签

归档