我一直在使用NHibernate,WPF,Prism和Unity Container编写WPF DESKTOP应用程序,但在服务/存储库中的会话管理方面存在问题,以及如何通过使用Unity的依赖注入来干净地完成它。
阅读Building A Desktop To Do-Application With NHibernate后,我现在有一个Session Per ViewModel / Presenter。
但是,如果我的viewmodel上有多个服务,我必须将Session传递给每个服务,这似乎很麻烦,而且不太正确,因为我想通过存储库执行所有数据访问。
例如
CustomerMaintenanceViewModel
{
service1.Session = SessionForThisPresenter;
service2.Session = SessionForThisPresenter;
service3.Session = SessionForThisPresenter;
service1.GetAllSomething();
service2.GetAllSomething();
service3.GetAllSomething();
}
每个服务本质上都是存储库的一个外观,我希望这个演示者的每个存储库都能参与到同一个会话中而不需要明确地设置它。
关于如何处理这个问题的任何建议都会非常感激,因为我确信有一个解决方案非常接近,但我不知道该怎么做。