2011-02-17 43 views
0

我有一个WPF应用程序,通过棱镜/ MEF将模块加载到我的应用程序中。每个模块都会引用我创建的程序集来存放NHibernate功能(工作单元&存储库模式)。现在,我开始了第一次模块上,下面的问题上来:WPF,Nhibernate v2 Session Persistence

  • 是否有开了WPF/Windows应用程序的生命周期的NHibernate的会议上共同的地方?
  • 在所有模块之间共享nhibernate会话还是让每个模块创建自己的会话是个好主意吗?

这是我的理解,会话是轻量级的,所以打开和关闭会话不是问题...但是,如果我关闭会话,然后我失去了更改跟踪...当我打电话保存,该对象与检索时相同,我不想要执行查询。

回答

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

  2. 这确实取决于这些模块如何交互。他们是分开的系统,还是需要一起工作才能工作?如果是前者,我会说他们不应该分享会话。如果是后者,我会使用某种可以传递当前会话的会话管理器。

+0

感谢您的意见。如果在应用程序的整个生命周期中保留一个会话是一个糟糕的主意,那么在我的情况下在模块间共享会话是没有意义的 – 2011-02-18 00:52:05

相关问题