WPF,Nhibernate v2会话持久性

时间:2011-02-17 22:13:12

标签: wpf nhibernate persistence

我有一个WPF应用程序,可以通过prism / MEF将模块加载到我的应用程序中。每个模块都将引用我创建的程序集来容纳NHibernate功能(工作单元和存储库模式)。现在我开始使用第一个模块,出现了以下问题:

  • 在WPF / Windows应用程序的生命周期内打开nhibernate会话是否常见?
  • 在所有模块之间共享nhibernate会话或让每个模块创建自己的会话是不是一个好主意?

我的理解是会话是轻量级的,所以打开和关闭会话不是问题...但是,如果我关闭会话然后我丢失了更改跟踪...当我调用Save时,对象是与检索时相同,我不希望执行查询。

1 个答案:

答案 0 :(得分:2)

  1. 在wpf / windows应用程序的生命周期内,不要打开会话。如果你这样做,你将遇到性能和内存问题。

  2. 这实际上取决于这些模块如何相互作用。它们是独立的系统,还是需要协同工作才能完成工作。如果是前者,我会说他们不应该分享会话。如果是后者,我会使用某种可以传递当前会话的会话管理器。