我想使用LINQ to SQL作为应用程序的数据层。乐观并发似乎会起作用,但我想过度乐观并且不打扰任何锁定(例如ReadUncommitted
又名WITH (NOLOCK)
),直到我到达SubmitChanges()
,我认为可以使用ReadCommitted
。
这听起来像疯了吗?最好使用两个分离的TransactionScope
个对象(一个用于ReadUncommitted
阅读,后一个用ReadCommitted
提交更改),或者有一些更好的方法可以提高隔离度提交更改之前的水平?
答案 0 :(得分:3)
ReadCommitted
或ReadUncommitted
对SubmitChanges()
无关紧要,因为它是写入,而不是读取。无论隔离级别如何,更新始终获取锁并尊重现有锁。它必须,这是锁的主要目的。
当然,通过更新未提交的数据,您可能会面临甚至无法更新记录的风险,但这是您在决定乐观时所接受的风险。