Tho*_*mas 3 nhibernate fluent-nhibernate
我正在考虑将Fluent NHibernate用于SQL Server 2008的新应用程序,我无法理解我所看到的连接处理行为.
我正在使用sp_who2监视连接,这是我看到的:
创建SessionFactory时,将打开一个连接.在应用程序被杀之前,此连接似乎保持打开状态.
打开新会话时不会打开任何连接.(没关系,我理解NHibernate会等到最后一刻创建数据库连接).
即使我通过NHibernate运行查询,也没有打开新的连接.我必须假设它正在使用创建SessionFactory时创建的连接,该连接仍然是打开的.我在查询之后(在会话关闭之前)设置了断点,并且sp_who中没有出现新的会话.
通过单个连接运行整个应用程序是不可接受的(显然). 如何确保每个ISession都有自己的连接? 我确信这里有一些明显的东西......
提前致谢.
您看到的行为是NHibernate特有的 - 连接池是SQL Server中的默认行为.
即使乍一看听起来很尴尬,但实际上这是件好事,因为创建新连接并维护它们是很昂贵的.
(有关更多信息,请参阅有关连接池的Wikipedia文章)
因此,无需尝试让NH为每个会话打开新连接,因为重用现有连接实际上可以提高SQL Server性能.
| 归档时间: |
|
| 查看次数: |
4183 次 |
| 最近记录: |