nhibernate - 为什么要使用 CaSTLeWindsor NHibernate 设施中的 ISessionManager?

标签 nhibernate castle-windsor windsor-nhfacility

我是 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/

相关文章:

c# - 使用 Moq 的单元测试未通过,对象为空,我错过了什么吗?

c# - Nhibernate - 使用依赖表保存对象

c# - Fluent Nhibernate 与 MySQL 的连接字符串

.net - 使用 CaSTLe AutoTx Facility 和 NHibernate Facility 的交易

c# - 使用 NHibernate 进行原始 SQL 查询的自定义转换器

caSTLe-windsor - TypedFactoryFacility : Passing null argument

c# - CaSTLe Windsor & 命令模式

c# - 温莎城堡 : How do I inject all implementations of interface into a ctor?

nhibernate - 在共享主机上使用 CaSTLe Windsor 和 NHibernate 设施

NHibernate (3.1.0.4000) NullReferenceException 使用 Query<> 和 NHibernate Facility