LINQ to SQL结合读取未提交和读取提交

时间:2011-09-08 11:08:22

标签: c# linq-to-sql transactions

我想使用LINQ to SQL作为应用程序的数据层。乐观并发似乎会起作用,但我想过度乐观并且不打扰任何锁定(例如ReadUncommitted又名WITH (NOLOCK)),直到我到达SubmitChanges(),我认为可以使用ReadCommitted

这听起来像疯了吗?最好使用两个分离的TransactionScope个对象(一个用于ReadUncommitted阅读,后一个用ReadCommitted提交更改),或者有一些更好的方法可以提高隔离度提交更改之前的水平?

1 个答案:

答案 0 :(得分:3)

ReadCommittedReadUncommittedSubmitChanges()无关紧要,因为它是写入,而不是读取。无论隔离级别如何,更新始终获取锁并尊重现有锁。它必须,这是锁的主要目的。

当然,通过更新未提交的数据,您可能会面临甚至无法更新记录的风险,但这是您在决定乐观时所接受的风险。