在.NET Entity Framework 3.5中的上下文之间移动实体

时间:2010-08-04 13:54:08

标签: entity-framework

我有一个场景,我想移动一堆对象图 在上下文之间。具体来说,我正在尝试导入的内容 一个数据库到另一个。有一个上下文[CurrentContext] 连接到主DB,另一个上下文[ImportContext] 连接到另一个DB。我想从中复制实体 将ContextContext导入CurrentContext,插入新记录或 更新现有记录。 这样的事情。

ImportContext.Organization.MergeOption = MergeOption.NoTracking; foreach(ImportContext.Organizations.ToList()中的var org) { CurrentContext.Attach(ORG); // 要么 CurrentContext.AddToOrganization(ORG); }

当我尝试Attach方法时,实体未保存,因为 entitystate是Unchanged,我无法弄清楚如何将其标记为 新。此外,如果实体是新的,它似乎附加不起作用, 因为EntityKey与ImportContext绑定。 如果我将EntityKey设置为null,我将丢失之间的关联 组织和其他实体。 AddToOrganization与丢失关联有同样的问题, 如果本组织曾经在该组织中,那么将会失败 CurrentContext。

进行此类导入的适当方法是什么?我 目前使用EF3.5并且无法将项目更新为EF4。

1 个答案:

答案 0 :(得分:1)

  1. Detach来自旧上下文的实体。
  2. AddObject实体进入新的背景。