【发布时间】:2018-03-24 04:08:29
【问题描述】:
使用 nhibernate,如何将事务级别设置为读取未提交?
使用 SQL,我通常在存储过程的开头设置事务级别或使用内联 (NOLOCK)。
【问题讨论】:
-
无论你在做什么,read uncommitted 真的是在自找麻烦。我从未见过使用它的真正理由。实际禁用事务隔离的应用程序没有正确使用事务。
-
这有点像 dba 神话。这是设计选择,就像所有设计选择都应该基于您所在的领域。对于基本的中小型 Web 项目和客户端应用程序(我猜这是绝大多数人工作的地方),那么这可能是正确的做法。决定是成本与风险,在实时环境中运行无事务和脏读几乎是常态。大型电子商务网站(如 ebay)也将与 RT 应用程序共享许多设计决策,交易级别如此之高,使用它们的风险太大。回滚的成本会削弱你。
-
Martin Fowler 在这里发表了评论:martinfowler.com/bliki/Transactionless.html
-
这是我使用 SQL 拦截器的解决方案。 stackoverflow.com/questions/1302746/…
标签: nhibernate