我是 NHibernate 和 CaSTLe Windsor 的初学者,但我正在处理的当前应用程序正在使用 CaSTLe Windsor 的 NHibernate 设施集成级别 2,即使用 ISessionManager。
我已经比较了手动保存数据和使用 ISessionManager 需要做的事情,我并没有真正编写更少的代码。我的问题是为什么我什至需要 ISessionManager?它为我提供了哪些优势?使用 ISessionManager 有什么缺点?
最佳答案
首先,您不必自己管理 session 。在网络环境中,您通常希望限制您的 session pr 请求。 session 管理器确保“OpenSession”的第一个调用者启动一个新 session ,而嵌套调用在调用“OpenSession”时获得相同的 session 。您可以自己通过在 httpmodule 中启动/关闭 session 或使用 AOP 模式来做同样的事情,请注意,这样做意味着您正在处理一个数据库,自己处理多个数据库会变得更加乏味。 ISessionManager 处理多个数据库就像处理一个数据库一样整洁。
+
为您处理 session
轻巧,非侵入式
简单的
轻松支持处理多个数据库
与主机无关(与 nservicebushosting 和 IIS 一样好用)
-
在你的 DAL/Repositories/不管你怎么称呼它的更多样板代码
关于nhibernate - 为什么要使用 CaSTLeWindsor NHibernate 设施中的 ISessionManager?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7822779/