繁体   English   中英

实体框架4加载参考例外

[英]Entity Framework 4 Loading Reference Exception

我在实体框架4中加载对父对象的引用时遇到麻烦。由于延迟加载,对象(条件)的引用未加载到子对象(DiscountLevel)上,所以我尝试加载它:

if(!this.ConditionReference.IsLoaded) this.ConditionReference.Load();

但是这引发了以下异常:

无法加载实体引用,因为它未附加到objectcontext

因此,如果我尝试将现有子对象(DiscountLevel)附加到对象上下文(然后加载父引用):

context.AttachTo("tblDiscountLevel", this);

我得到以下异常:

ObjectStateManager中已存在具有相同键的对象。 现有对象处于Detached状态。 如果对象处于添加状态,则只能再次将其添加到ObjectStateManager。

我觉得我首先做错了什么,但我无法弄清楚是什么。 因此,非常感谢对此主题的每一个帮助。 如果您需要其他信息,请告诉我们!

我偶然发现了这个问题并且它不需要对上面的代码做任何事情:在DiscountLevel中的各种覆盖的OnChange方法中有一些计算如果它们被过早调用则会失败 - 在这种情况下,在初始加载时DB。 这导致Child对象未正确初始化 - 看起来好像没有从外部加载。

实现一个简单的bool变量,它在初始加载时强制执行OnChange-methods,这使得一切都按预期工作。 可能有一个更优雅的解决方案与实体框架提供的功能,但这对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM