2013-07-03 74 views
1

我使用實體框架將大量數據上傳到數據庫。我有很多不同的實體與他們之間的關係。
我的問題是,有時我上傳的對象可能已經在數據庫中,但是當我查找該對象並找到它時,我無法將其添加到我的本地生成的實體中,因爲它們屬於不同的上下文。使用實體框架上傳數據

例如,我有實體Sailor和Booze,它們有關係。我有一個新的水手Ackbar,我知道他最喜歡的酒是朗姆酒,我想堅持這個數據庫。
我做了一個新的水手,並將它的名字命名爲Ackbar。然後我擡頭看看Booze是否有一個名爲朗姆酒的條目。如果有,我嘗試將它添加到Ackbar。當我這樣做時,EF抱怨說新的水手和數據庫中的豪飲屬於不同的背景。 如果我嘗試將水手連接到上下文,它會抱怨水手有一個空實體鍵。

在完成編輯關係之前,如何構建所有這些關係而不保存任何內容到數據庫?

+0

嘗試使用一個'上下文'實例是我可以建議沒有一行代碼。 – qujck

+0

對於缺少代碼感到抱歉,我無法真正把任何東西放到網上。 不使用一個上下文的原因是我認爲你應該只在短時間內使用上下文。在上下文中,我將閱讀整個Word文檔並從中卸載數據。 – user1815201

+0

對此操作使用相同的「Context」是可以的。如果需要,您可以在每個「SaveChanges」之後回收'context'。 – qujck

回答

0

我建議你改變你的代碼,使用相同的Context進行閱讀和寫作。對於單個交易而言,擁有多個上下文並不比擁有活着幾分鐘的Context更好。