我想使用LINQ to SQL作为应用程序的数据层。乐观的并发看起来可能会奏效,但我希望过于乐观,并且不打扰任何锁定(例如ReadUncommitted
也就是WITH (NOLOCK)
),直到我到达SubmitChanges()
,此时我认为可以使用ReadCommitted
。LINQ to SQL结合读取未提交和读取提交
听起来这是疯了吗?使用两个分离的TransactionScope
对象(一个用ReadUncommitted
读取,其次是用于提交ReadCommitted
的更改),还是有更好的方法可以在提交更改之前立即提高隔离级别?
如果您正在阅读为什么要在交易范围内完成此操作。事务选择是没有意义的。 –
这是不正确的。通过读取未提交的数据,可能会稍后回滚数据,因此用户正在更新重影。通过不对数据保持读锁定,其他用户可以更新此更新将被盲目覆盖的数据。 – DevDelivery
我不同意。使用readuncommitted选项的事务读取将允许我立即(更快)地访问可能被其他进程锁定的行。 – Jono