![](/img/trans.png)
[英]How to Implement Castle Windsor IScopeAccessor to provide NHibernate Session Per ViewModel using LifestyleScoped
[英]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.