Как проверить LINQ to SQL Conflict Management - PullRequest
2 голосов
/ 27 января 2012

В моем веб-приложении реализовано следующее решение для управления конфликтами:

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, кажется, зависает до завершения вызова режима ожидания потока.

1 Ответ

0 голосов
/ 15 мая 2013

Вы пытались создать новый текстовый текст непосредственно перед (submitChanges) и обновить данные для этого контекста, сохранив его, а затем разрешив первому текстовому тексту передать свои изменения?

...