2012-01-20 60 views
1

我有一個表單來填寫文檔A.文檔A具有關聯的文檔B和C. 單個上下文應該用於單個工作單元 - 例如填充文檔A.但是!我想填寫B和C,填寫A時可以選擇取消所有內容。是否有可能,如果是 - 如何 - 從另一個上下文而不是數據庫創建上下文。實體框架 - 從上下文創建上下文

我爲文檔A創建了一個上下文,當用戶開始創建文檔B時,我想要一個「子上下文」,將其更改保存在其「父」上下文中。

我可以這樣做嗎?怎麼樣?難道我做錯了什麼?

回答

1

不可以。您不能爲上下文創建上下文 - 至少不存在這樣的內置功能,因此您必須自己創建新的「子上下文」類型及其整個邏輯。

簡單地說,如果你想作爲工作單位工作,使用單個上下文。您可以使用兩種方法:

  1. 創建文檔A,B和C,它們之間只有經過文件A添加到背景和SaveChanges正確引用。如果用戶取消創建文檔,則不會將文檔A添加到上下文,也不會調用SaveChanges
  2. 創建文檔A並將其添加到上下文中,創建文檔B並將其添加到上下文中,創建文檔C並將其添加到上下文中。之後,通過設置導航屬性和SaveChanges在上下文之間進行引用。如果用戶決定取消創建,則您將處理當前上下文而無需調用SaveChanges