Как указать, когда возникают исключения параллелизма (LINQ to SQL)

Если в связи с конфликтами оптимистической блокировки обновление объектов не выполняется, в LINQ to SQL вызывается исключение ChangeConflictException. Дополнительные сведения см. в разделе Общие сведения об оптимистичном параллелизме (LINQ to SQL).

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

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

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

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

Пример

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

Dim db As New Northwnd("...")

' Create, update, delete code.

db.SubmitChanges(ConflictMode.FailOnFirstConflict)
' or
db.SubmitChanges(ConflictMode.ContinueOnConflict)
Northwnd db = new Northwnd("...");

// Create, update, delete code.

db.SubmitChanges(ConflictMode.FailOnFirstConflict);
// or
db.SubmitChanges(ConflictMode.ContinueOnConflict);

См. также

Другие ресурсы

Как управлять конфликтами изменений (LINQ to SQL)

Внесение и отправка изменений данных (LINQ to SQL)