В моем веб-приложении реализовано следующее решение для управления конфликтами:
Using transaction As New TransactionScope()
Do
Try
' Make changes to the data'
db.SubmitChanges()
transaction.Complete()
' Exit the loop when no conflicts occurred'
Exit Do
Catch conflictEx As ChangeConflictException
For Each prob As ObjectChangeConflict
In manager.db.ChangeConflicts
prob.Resolve(
RefreshMode.OverwriteCurrentValues)
Next
End Try
Loop
End Using
По сути, если кто-то еще быстро изменяет данные во время их обработки, программа должна перечитать все данныеи пересчитать изменения с нуля.
Но я не могу найти какой-либо способ протестировать это решение для управления конфликтами.Я пытался установить точку останова до транзакции.Complete () и изменить данные таблицы в Visual Studio, но он показывает ошибку тайм-аута, пока точка останова установлена.
Есть ли другой надежный способ проверки?
ADD: также попытался вставить вызов Thread.Sleep (10000) и изменить данные в запросе VS - VS, кажется, зависает до завершения вызова режима ожидания потока.