我有一个WPF应用程序,可以通过prism / MEF将模块加载到我的应用程序中。每个模块都将引用我创建的程序集来容纳NHibernate功能(工作单元和存储库模式)。现在我开始使用第一个模块,出现了以下问题:
我的理解是会话是轻量级的,所以打开和关闭会话不是问题...但是,如果我关闭会话然后我丢失了更改跟踪...当我调用Save时,对象是与检索时相同,我不希望执行查询。
答案 0 :(得分:2)
在wpf / windows应用程序的生命周期内,不要打开会话。如果你这样做,你将遇到性能和内存问题。
这实际上取决于这些模块如何相互作用。它们是独立的系统,还是需要协同工作才能完成工作。如果是前者,我会说他们不应该分享会话。如果是后者,我会使用某种可以传递当前会话的会话管理器。