2010-08-04 61 views
0

我有一個場景,我想在上下文之間移動一堆對象圖形 。具體而言,我試圖將 一個數據庫的內容導入到另一個數據庫中。連接到主DB的上下文[CurrentContext] ,以及連接到另一個DB的另一個上下文[ImportContext] 。我想將 ImportContext中的實體複製到CurrentContext中,或者插入新記錄或 更新現有記錄。 就是這樣。在.NET Entity Framework中的上下文之間移動實體3.5

ImportContext.Organization.MergeOption = MergeOption.NoTracking; (org);或者,當前上下文(org);或者當前上下文(org);或者當前上下文(org);或者當前上下文(org)。 // or CurrentContext.AddToOrganization(org); }

當我嘗試Attach方法,未保存的實體,因爲 entitystate是不變的,而我無法弄清楚如何將其標記爲 新。另外,如果實體是新的,則看起來Attach不起作用,因爲EntityKey綁定到ImportContext,所以 。 如果我將EntityKey設置爲空,則我將失去組織與其他實體之間的關聯。 AddToOrganization具有與丟失關聯相同的問題 ,或者如果組織曾經位於CurrentContext的 中,將會失敗。

做這種導入的適當方法是什麼?我是目前使用EF3.5的 ,無法將項目更新到EF4。

回答

1
  1. Detach實體來自舊的上下文。
  2. AddObject該實體進入新的上下文。
+2

這不起作用,在某些情況下,實體不是新的,它只是更新。另外,當我分離實體時,我會丟失對象圖的其餘部分,這也需要添加或更新。 – user410854 2010-08-04 19:15:46

+0

你需要更具體。 – 2010-08-04 20:47:22

+0

存在包含項目A,B,C,q,x,y,z和上下文[C2]與C,D,E,x,y,z的上下文[C1]。 A有一個包含項目q,x,y的集合; [C1] .C具有項目x,y,z的集合; [C2] .C具有項目x,y的集合。 我想將[C1](A,B,C,q,x,y,z)中的項目複製到[C2]中。如果該項目在[C2]中不存在,我希望它被添加,如果它存在,我希望它被更新。 – user410854 2010-08-05 00:28:27

相關問題