Я получаю ChangeConflictException
в своем веб-приложении, когда код обновляет определенную строку в определенной таблице. Лучшее, что я могу сказать, это то, что два пользователя завершают транзакцию в одно и то же время, и оптимистичный параллелизм влияет только на метод SubmitChanges()
, а не на блокировку при выборе строки.
Другими словами, у меня есть такая транзакция:
Dim query = From row in Table _
Where row.ID = <blah> _
Select row
Dim result = query.Single()
result.COLUMN = 2
dataContext.SubmitChanges()
Встроенный оптимистичный параллелизм блокирует запись при вызове SubmitChanges()
, но если запись изменяется после Single()
и до SubmitChanges()
, возникает ошибка.
... по крайней мере, это моя теория ...
Кто-нибудь знает способ запустить блокировку при вызове Single()
вместо просто по SubmitChanges()
?