簡體   English   中英

帶有存儲庫的桌面應用程序中每個ViewModel的會話

[英]Session Per ViewModel in Desktop Application with Repository

我一直在使用NHibernate,WPF,Prism和Unity容器編寫WPF DESKTOP應用程序,但是在服務/存儲庫中的會話管理以及如何通過使用Unity進行依賴項注入的方式進行清潔方面存在問題。

閱讀了使用NHibernate構建要執行的桌面應用程序后,我現在每個ViewModel / Presenter都有一個會話。

但是,如果我的視圖模型上有多個服務,則必須將Session傳遞給每個服務,這似乎很麻煩,而且不太正確,因為我想通過存儲庫執行所有數據訪問。

例如

CustomerMaintenanceViewModel
{
     service1.Session = SessionForThisPresenter;
     service2.Session = SessionForThisPresenter;
     service3.Session = SessionForThisPresenter;
     service1.GetAllSomething();
     service2.GetAllSomething();
     service3.GetAllSomething();
}

每個服務本質上都是一個存儲庫上的立面,我希望該演示者的每個存儲庫都可以參與同一會話,而無需顯式設置它。

我們將非常感謝您提供有關如何處理此問題的任何建議,因為我確信有一個非常接近的解決方案,但是我不確定如何做到這一點。

我建議您研究一下uNhAddIns

它具有使用MVVM的完整WPF示例。

暫無
暫無

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

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