【发布时间】:2011-12-04 20:57:03
【问题描述】:
在不打开事务的情况下从表中原子更新记录的最佳方式(如果有的话)是什么?我的意思是像
UPDATE Table_1 SET Value=Value+@Increment WHERE Id=@Id
也许可以通过 HQL 或 NHibernate 的平面 SQL...
上一个 NHibernate 版本是否支持通过 HQL 更新?! 这个说法呢?
UPDATE Table_1 SET Value=Value+@Increment, @Result=1
WHERE Id=@Id AND Value+@Increment<=@MaxLimit;SELECT @Result
【问题讨论】:
-
您为什么关心交易?如果你没有明确指定一个事务,一个事务将由数据库本身隐式创建。(例如 Sql Server)
-
是的,但是如果我已经在 NHibernate 中打开了一个事务,并且这个更新我想继续使用更严格的隔离级别,会发生什么?到目前为止,NHibernate 还没有嵌套事务 :(
标签: .net nhibernate transactions