当我使用实体框架时,我想查询上下文中的记录并将其添加到具有相同架构的另一个上下文中,查询出记录后,我将其与上下文分离,但相关实体都消失了,是吗?有什么办法解决吗?
提前致谢!
这是“设计使然”。 EF 只能一一分离实体,但同时 EF 不支持由附加实体和分离实体组成的对象图。因此,当您分离实体时,它将破坏与附加对象图其余部分的所有关系。目前不支持分离整个对象图,但您可以在以下位置投票支持此功能数据用户声音.
作为解决方法,您可以关闭上下文上的延迟加载,使用 @CodeWarrior 描述的预先加载来准确加载您需要传递到其他上下文的数据。加载数据后,将它们序列化为流式传输,并立即将它们反序列化为对象图的新实例。这是如何对实体图进行深度克隆的方法,该实体图是分离的,但所有关系都完好无损(需要关闭延迟加载,否则序列化也会加载所有其他导航属性,这可能会导致比预期大得多的对象图)。唯一的要求是您的实体必须可以由您选择的序列化器进行序列化(请注意循环引用,这通常需要对实体进行一些特殊处理或附加属性)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)