NHibernate transaction 与 "Audit Logout"

myblind 2010-01-05 11:34:45
初次使用NHibernate,连接MSSQL,发现一个问题:NHibernate似乎有自动的事务处理,每执行一条SQL就Logout,由此产生了大量的Login和Logout,应该会降低性能。只有显式写明transaction.begin()、commit(),那些语句才会在一次login内完成
。有什么方法不让他Logout呢?
NHibernate 版本 2.1.2.4000


// 一次Login/Logout
...
var transaction = session.BeginTransaction();
...
session.Save(obj1);
session.Save(obj2);
transaction.Commit();



// 多次 Login/Logout
...
session.Save(obj1);
session.Save(obj2);
...全文
114 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
myblind 2010-01-14
  • 打赏
  • 举报
回复
看了源代码,才知道要在配置文件中设置
<property name="connection.release_mode">on_close</property>
tzs2304 2010-01-06
  • 打赏
  • 举报
回复
up
royal1 2010-01-06
  • 打赏
  • 举报
回复
这是NHibernate的机制,所谓对象持久化,就是说你操作的这个对象是保存在内存中的,只有当你提交时才会进入数据库。而且一个对象可能是有一张或多张表组成,需要级连更新,所以事务是必须的。
cuike519 2010-01-06
  • 打赏
  • 举报
回复
看看源代码吧,没仔细研究过,关注一下。
平生我自如 2010-01-06
  • 打赏
  • 举报
回复
没人回答!我帮顶一下

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧