gpt4 book ai didi

c# - Entity Framework 4 加载引用异常

转载 作者:可可西里 更新时间:2023-11-01 09:15:28 26 4
gpt4 key购买 nike

我在 Entity Framework 4 中加载对父对象的引用时遇到问题。由于延迟加载,对父对象 (Condition) 的引用未加载到子对象 (DiscountLevel),因此我尝试加载它与:

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

但这会引发以下异常:

the entity reference could not be loaded because it is not attached to an objectcontext

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

context.AttachTo("tblDiscountLevel", this);

我得到以下异常:

An object with the same key already exists in the ObjectStateManager. The existing object is in the Detached state. An object can only be added to the ObjectStateManager again if it is in the added state.

我觉得我一开始做错了什么,但我想不通是什么。因此,非常感谢有关此主题的每一个帮助。如果您需要更多信息,请告诉我!

最佳答案

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

实现一个简单的 bool 变量,在初始加载时抑制 OnChange 方法的执行,使一切都按预期工作。 Entity Framework 提供的功能可能有更优雅的解决方案,但这对我有用。

关于c# - Entity Framework 4 加载引用异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30570050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com