有没有之间的差异Session.Save
和Transaction.Commit
?
什么时候应该用哪个?
似乎有时Session.Save
必须结合使用Transaction.Commit
,有时必须使用.任何人都可以告诉为什么会这样吗?
小智 15
他们是不同的 - Session.Save
保存一个对象并Transaction.Commit
提交一堆工作(多个获取,加载,保存,更新等).
你会想要同时使用它们.这是一个快速解释,带有更多阅读的链接.NHibernate文档说明如下:
在一个实例中
ISession
,每个数据库操作都发生在隔离数据库操作的事务中(甚至是只读操作).
如果未明确定义事务,则每次读取或写入数据库时都会隐式创建事务.不是很有效率.因此,即使您只是阅读,您也希望将所有内容放入事务中,并在完成后提交事务.Ayende Rahien在这篇博客文章中进一步解释.
当你看一些代码样本时,似乎人们没有使用事务,但他们可能只是在你正在查看的代码之外开始/提交事务.例如,在我的ASP.Net MVC应用程序中,我使用动作过滤器(TransactionAttribute)来处理Controller Actions之外的事务.
归档时间: |
|
查看次数: |
11773 次 |
最近记录: |