我想使用LINQ to SQL作爲應用程序的數據層。樂觀的併發看起來可能會奏效,但我希望過於樂觀,並且不打擾任何鎖定(例如ReadUncommitted
也就是WITH (NOLOCK)
),直到我到達SubmitChanges()
,此時我認爲可以使用ReadCommitted
。LINQ to SQL結合讀取未提交和讀取提交
聽起來這是瘋了嗎?使用兩個分離的TransactionScope
對象(一個用ReadUncommitted
讀取,其次是用於提交ReadCommitted
的更改),還是有更好的方法可以在提交更改之前立即提高隔離級別?
如果您正在閱讀爲什麼要在交易範圍內完成此操作。事務選擇是沒有意義的。 –
這是不正確的。通過讀取未提交的數據,可能會稍後回滾數據,因此用戶正在更新重影。通過不對數據保持讀鎖定,其他用戶可以更新此更新將被盲目覆蓋的數據。 – DevDelivery
我不同意。使用readuncommitted選項的事務讀取將允許我立即(更快)地訪問可能被其他進程鎖定的行。 – Jono