为什么要使用CastleWindsor NHibernate工具中的ISessionManager?

时间:2011-10-19 14:23:27

标签: nhibernate castle-windsor windsor-nhfacility

我是NHibernate和Castle Windsor的初学者,但我正在开发的当前应用程序是使用Castle Windsor的NHibernate工具集成级别2,即使用ISessionManager。

我已经比较了我需要做的事情,以便手动保存我的数据和使用ISessionManager,而我并没有真正编写更少的代码。我的问题是为什么我甚至需要ISessionManager?它给我带来了什么好处?使用ISessionManager有什么缺点?

1 个答案:

答案 0 :(得分:1)

首先,您不必自己管理会话。在网络环境中,您通常希望根据请求确定会话的范围。会话管理器确保第一个调用者来自" OpenSession"启动一个新会话,而嵌套调用在调用" OpenSession"时获得相同的会话。您可以通过在httpmodule中查看/关闭会话或使用AOP模式来做同样的事情,请注意,这样做意味着您正在对一个数据库工作,自己处理多个数据库会变得更加乏味。 ISessionManager处理多个数据库,就像处理一个数据库一样整洁。

+ 为您处理会话 轻巧,非侵入性 简单 轻松支持多个数据库的工作 托管不可知(与nservicebushosting一样,与IIS一样)

- 您的DAL /存储库中的更多样板代码/无论您称之为