.net 在分离的POCO代理上设置相关实体Id
我有一个从EF4.0分离的POCO代理(分离意味着ObjectContext已经释放) 我有一个属性MyRelatedEntityId,它是导航属性MyRelatedEntity的FK 碰巧,我知道要为MyRelatedEntityId设置什么值,所以我尝试手动设置它……但是分离的POCO代理抛出ObjectContext已经处理的异常.net 在分离的POCO代理上设置相关实体Id,.net,entity-framework-4,poco,.net,Entity Framework 4,Poco,我有一个从EF4.0分离的POCO代理(分离意味着ObjectContext已经释放) 我有一个属性MyRelatedEntityId,它是导航属性MyRelatedEntity的FK 碰巧,我知道要为MyRelatedEntityId设置什么值,所以我尝试手动设置它……但是分离的POCO代理抛出ObjectContext已经处理的异常 我如何才能做到这一点,或者是否有解决方法?您必须关闭延迟加载。我认为,一旦设置了FK属性,动态代理将尝试加载相关实体,但由于上下文的原因而失败 编辑: 我刚刚检
我如何才能做到这一点,或者是否有解决方法?您必须关闭延迟加载。我认为,一旦设置了FK属性,动态代理将尝试加载相关实体,但由于上下文的原因而失败 编辑: 我刚刚检查了这个问题,因为正如您提到的,不应该触发延迟加载。问题是自动生成的代码,它使用Fixup方法来建立双向关系。若加载了上一个相关实体并更改了FK,则会将相关实体设置为null。这将触发fixup方法,该方法尝试从先前相关实体的子对象中删除当前实体。如果在处理上下文之前未加载它们,则会出现异常。只需调试代码,包括生成的代码 解决办法是:
- 关闭此场景的延迟加载
- 从相关实体中删除导航集合
- 修改T4模板,使其不会生成修复方法