Nhibernate 具有存储库的桌面应用程序中每个ViewModel的会话

Nhibernate 具有存储库的桌面应用程序中每个ViewModel的会话,nhibernate,session,repository,viewmodel,Nhibernate,Session,Repository,Viewmodel,我一直在使用NHibernate、WPF、Prism和Unity容器编写WPF桌面应用程序,但在服务/存储库中的会话管理以及如何通过使用Unity的依赖注入干净地完成这项工作方面存在问题 阅读之后,我现在有了一个针对每个ViewModel/Presenter的会话 但是,如果我的viewmodel上有多个服务,我必须将会话传递到每个服务中,这似乎很麻烦,而且不太正确,因为我希望通过存储库执行所有数据访问 e、 g 每个服务本质上都是存储库上的一个门面,我希望此演示者的每个存储库都参与到同一个会话

我一直在使用NHibernate、WPF、Prism和Unity容器编写WPF桌面应用程序,但在服务/存储库中的会话管理以及如何通过使用Unity的依赖注入干净地完成这项工作方面存在问题

阅读之后,我现在有了一个针对每个ViewModel/Presenter的会话

但是,如果我的viewmodel上有多个服务,我必须将会话传递到每个服务中,这似乎很麻烦,而且不太正确,因为我希望通过存储库执行所有数据访问

e、 g

每个服务本质上都是存储库上的一个门面,我希望此演示者的每个存储库都参与到同一个会话中,而无需显式设置它

如果您能就如何处理此问题提供任何建议,我将不胜感激,因为我确信有一个非常接近的解决方案,但我不确定如何解决此问题。

我建议您研究一下

它有一个使用MVVM的完整WPF示例

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