为什么要使用CastleWindsor NHibernate设施的ISessionManager?

为什么要使用CastleWindsor NHibernate设施的ISessionManager?,nhibernate,castle-windsor,windsor-nhfacility,Nhibernate,Castle Windsor,Windsor Nhfacility,我是NHibernate和Castle Windsor的初学者,但我目前正在开发的应用程序是利用Castle Windsor的NHibernate设施集成级别2,即使用ISessionManager 我已经比较了手动持久化数据和使用ISessionManager所需做的工作,我并没有真正减少代码的编写。我的问题是为什么我甚至需要一个经理?这对我有什么好处?使用ISessionManager的缺点是什么 首先,你不必自己管理会话。在web环境中,您通常希望确定会话pr请求的范围。会话管理器确保“O

我是NHibernate和Castle Windsor的初学者,但我目前正在开发的应用程序是利用Castle Windsor的NHibernate设施集成级别2,即使用ISessionManager


我已经比较了手动持久化数据和使用ISessionManager所需做的工作,我并没有真正减少代码的编写。我的问题是为什么我甚至需要一个经理?这对我有什么好处?使用ISessionManager的缺点是什么

首先,你不必自己管理会话。在web环境中,您通常希望确定会话pr请求的范围。会话管理器确保“OpenSession”的第一个调用方启动新会话,而嵌套调用在调用“OpenSession”时获得相同的会话。您也可以通过启动/关闭httpmodule中的会话或使用AOP模式来完成同样的操作,请注意,这样做意味着您正在处理一个数据库,而自己处理多个数据库会变得更为繁琐。ISessionManager处理多个数据库就像处理一个数据库一样整洁

+ 为您处理会话 轻量级、非侵入式 简单的 轻松支持处理多个数据库 托管不可知(nservicebushosting与IIS一样适用)

- 在DAL/存储库/任何你称之为DAL的东西中添加更多的样板代码