【发布时间】:2014-10-26 12:18:39
【问题描述】:
我开始怀疑是否有人将 NHibernate 与 WPF 或 Win Forms 应用程序一起使用,这就是关于该主题的示例或教科书的缺乏。我正在努力寻找使用它的“最佳实践”,尤其是会话和会话工厂管理,以及 MVVM WPF 应用程序和存储库。 要直接进入,似乎首选是为存储库提供 ISession。但是,这是在哪里实例化的 - 在 ViewModel 中? - 如果是这样,这是否不会在 VM 和 NH 之间产生令人不安的依赖关系(或者这只是不可避免的,无论你如何修饰它?)对多用户应用程序有什么影响吗?
使用存储库模式 - 我应该使用一个大型存储库吗?对于所有对象(以及因此一个会话),或者,乍一看似乎更易于管理,是否应该以某种与业务相关的逻辑方式拆分存储库? - 但是,如果分开,那么如何管理会话?就我而言,表单/窗口不仅处理一个实体(也许它应该......?),但处理多个实体。我不希望 ORM 方面受 UI 表单设计的支配(也许应该!?)
再说一次,SessionFactory - 在哪里以及何时创建它 - 一次,在应用启动时?
对于非基于网络的 NH 应用程序的任何好的指针或参考将不胜感激。
这是一个类似问题的参考,但它是在四年前提出的:Using Unit of Work design pattern / NHibernate Sessions in an MVVM WPF
非常感谢
【问题讨论】:
标签: session nhibernate mvvm