我使用EF 6.1 alpha和Caliburn.Micro 2.0 -alpha2。使用ViewModels共享EntityFramework上下文
我有一個名爲ProductWorkspaceViewModel的ViewModel,它包含一個ProductViewModel。 這兩種視圖模型都使用EF和各自的上下文,而第一次從Db中讀取所有產品並將它們顯示在列表中,稍後對所選項目執行CRUD操作。
現在,當我從ProductViewModel刪除,添加或更新產品時,它應該在ProductWorkSpaceViewModel中更新。我使用EventAggregator更新Workspace,並使用LoadAll()或將更新的ProductEntity發送到WorkSpaceViewModel。但是,當我從Workspace中選擇相同的更新產品時,Lazy的相關屬性在ProductViewModel中不會更新,因爲兩者都具有不同的Context實例。
我想爲這兩個ViewModel使用共享上下文,但已經閱讀了其他問題,比如上下文不應該共享,應該在操作完成後儘快處理,比如刪除。
如何才能最好地實現上述問題的解決方案。工作空間上下文也被許多DataTemplates使用。
我應該使用共享上下文還是應該更新任何ViewModel加載所有惰性屬性。但是這會增加更多的代碼並且很複雜。
尋找最佳實踐。
Upate: 我剛纔提到DbContext作爲參考,我使用了一個DAL,它有一個繼承自DbContext的類。
另外我想更新我的主項目不使用EF或任何DAL。它充當我作爲子項目創建的所有模塊的主機。對於例如,ProductViewModel是庫存模塊,這是我使用的IoC(MEF)加載到MAIN.EXE
請參閱我的更新問題 –