2011-03-17 160 views
1

我在先前的文章中閱讀過關於如何通過將Db的ObjectContext放置在HttpContext.Current.Items [「Db」];這工作太棒了,但我有一個問題。這是否意味着每次使用我的存儲庫時,我都必須在HttpContext.Current.Items中傳遞ObjectContext,或者在創建或更新具有對另一個實體的引用的實體時只需要執行此操作。實體框架4 ObjectContext GuideLines

在我的存儲庫類中,我有兩種實例化它們的方法,包含一個ObjectContext,沒有一個ObjectContext在實體中創建。

回答

1

您應該在單個HTTP請求處理中使用的所有存儲庫中共享一個上下文。您還應該在請求處理結束時處理上下文。通常你的倉庫不應該依賴於HttpContext。最好的方法是在您的存儲庫之外創建ObjectContext並始終將其傳遞給它們的構造函數。您也可以通過使用一些IoC容器(如Windsor,StructureMap,Ninject或Unity)來執行此操作。

+0

謝謝,這完全回答了我的問題,我將能夠確保我在項目中早日堅持這一點。 – Jhixiaus 2011-03-17 14:54:43