簡體   English   中英

實體框架上下文生存期

[英]Entity Framework Context lifetime

我有一個使用EF orm進行映射的WPF桌面應用程序。 我的應用程序有幾個頁面,每個頁面都有幾個窗口。 EF上下文是針對每個表單創建的。 應用中使用無狀態實體的頁面僅向用戶顯示數據。

我的問題是頁面應該為單個任務更新實體,因此,此頁面上應該存在上下文。 因此,在此頁面上打開用於更新其他實體的窗口的位置,此頁面上有2個活動上下文。

我如何預防這種情況?

在您的項目中創建一個新的類“ ClientRepository”。 此類將包含您的客戶端具有的所有實體框架訪問邏輯。

在所有窗口和頁面中使用此類。

如果將此類配置為表現為單例,則只有一個實體框架上下文。 理想情況下,可以使用Microsoft UnitNinject之類的DI框架完成此操作,但是當然您也可以手動執行此操作。


辛爾頓?

您可能會問自己,這里是否適合您單身?

我曾經有一個類似的問題,因此在多元化網站上的“ MVVM”課程上問了Brian Noyes(微軟MVP)。

他在回應中寫道:“ ...我的大多數客戶服務無論如何都是Singletons,並且在應用程序的生命周期中始終存在。”

因此,對於客戶服務,可以單身。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM