Практическое руководство. Выбор ситуаций, в которых создаются исключения параллельности

В LINQ to SQL ChangeConflictException исключение возникает, когда объекты не обновляются из-за конфликтов оптимистического параллелизма. Дополнительные сведения см. в разделе "Оптимистическое параллелизм". Обзор.

Перед отправкой изменений в базу данных можно указать момент возникновения исключений блокировки.

  • Создавать исключение при первом сбое (FailOnFirstConflict).

  • Завершить все попытки обновления, собрать все ошибки и сообщить о них в исключении (ContinueOnConflict).

Созданное исключение ChangeConflictException предоставляет доступ к коллекции ChangeConflictCollection. Данная коллекция содержит сведения о каждом конфликте (сопоставленном с одной неудачной попыткой обновления), включая доступ к коллекции MemberConflicts. Каждый конфликт члена сопоставляется с одним членом в обновлении, которое привело к сбою проверки блокировки.

Пример

В следующем коде приведены примеры обоих значений.

Northwnd db = new Northwnd("...");

// Create, update, delete code.

db.SubmitChanges(ConflictMode.FailOnFirstConflict);
// or
db.SubmitChanges(ConflictMode.ContinueOnConflict);
Dim db As New Northwnd("...")

' Create, update, delete code.

db.SubmitChanges(ConflictMode.FailOnFirstConflict)
' or
db.SubmitChanges(ConflictMode.ContinueOnConflict)

См. также