【发布时间】:2011-01-02 01:51:30
【问题描述】:
我是 NHibernate 的新手,在过早关闭会话时遇到了一些问题。我通过重用会话而不是为每个事务打开一个会话来暂时解决了这个问题。但是,我的印象是,每次需要时打开会话是会话生命周期管理的推荐方法。不?
所以;处理会话的推荐方式是什么?他们的一生应该是怎样的?一个会话 pr 交易?一个单例会话来处理所有事情?要不然是啥?
编辑:
请注意,我的应用程序架构是与服务器端服务通信的桌面应用程序,这是使用 NHibernate + Fluent 处理所有数据库的内容。 (如果这有什么不同...)
【问题讨论】:
-
在您的问题stackoverflow.com/questions/2011950/… 中,您要求我调查这个新问题,但我看到您已经收到了充分的报道。我支持这里的一些观点,但请注意,似乎会话和事务在讨论中混杂在一起,而它们是不同的东西。此外,会话池或超时触发的会话在性能方面可能是有益的,但设置和正确设置却很棘手。另请注意,无论您选择何种模式,都会在底层使用连接池。
-
感谢您的评论亚伯。在示例中,我看到会话和事务通常共享相同的生命周期,但正如在引用的问题中看到的那样,这有时可能是一个问题。我希望人们已经回答了“会话生命周期” - 而不是“事务生命周期”,我在印象就是这样。
标签: .net nhibernate session lifetime