3

我是NHibernate 和Castle Windsor 的初学者,但我正在处理的当前应用程序正在使用Castle Windsor 的NHibernate 设施集成级别2,即使用ISessionManager。

我已经比较了手动保存数据和使用 ISessionManager 需要做的事情,我并没有真正编写更少的代码。我的问题是为什么我什至需要 ISessionManager?它为我提供了哪些优势?使用 ISessionManager 有什么缺点?

4

1 回答 1

1

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

+ 为您处理会话 轻量级、非侵入性 简单 轻松支持处理多个数据库 与主机无关(与 nservicebushosting 和 IIS 一样好用)

- 在你的 DAL/存储库/无论你怎么称呼它都有更多样板代码

于 2011-11-20T06:46:24.513 回答