我有一个来自EF 4.0的分离POCO代理(分离意味着ObjectContext已经处理掉)。
我有一个属性MyRelatedEntityId,它是导航属性MyRelatedEntity的FK。
碰巧,我知道我想为MyRelatedEntityId设置什么值,所以我尝试手动设置....但是分离的POCO代理抛出了ObjectContext已经处理的异常。
我该怎么做?或者有解决方法吗?
答案 0 :(得分:1)
您必须关闭延迟加载。我认为一旦你设置了FK属性,动态代理将尝试加载相关的实体,并且由于处置上下文而失败。
编辑:
我刚检查过这个问题因为你提到懒惰加载不应该被触发。问题是自动生成的代码,它使用Fixup方法建立双向关系。如果您加载了以前的相关实体并且您更改了FK,则会将相关实体设置为null。这会触发fixup方法,该方法尝试从先前相关实体的子节点中删除当前实体。如果在处理上下文之前没有加载它们,则会出现异常。只是尝试调试代码,包括生成的代码。
解决方案是:
答案 1 :(得分:1)
您是否在ObjectContext处置之前分离了实体?您是否在将实体附加到新的ObjectContext后尝试设置它?