Udostępnij za pośrednictwem


Instrukcje: Określanie, kiedy są zgłaszane wyjątki współbieżności

W linQ to SQL zgłaszany ChangeConflictException jest wyjątek, gdy obiekty nie są aktualizowane z powodu konfliktów optymistycznej współbieżności. Aby uzyskać więcej informacji, zobacz Optymistyczna współbieżność: omówienie.

Przed przesłaniem zmian do bazy danych można określić, kiedy powinny zostać zgłoszone wyjątki współbieżności:

  • Zgłaszanie wyjątku przy pierwszym błędzie (FailOnFirstConflict).

  • Zakończ wszystkie próby aktualizacji, zakumuluj wszystkie błędy i zgłoś skumulowane błędy w wyjątku (ContinueOnConflict).

W przypadku zgłoszenia ChangeConflictException wyjątek zapewnia dostęp do ChangeConflictCollection kolekcji. Ta kolekcja zawiera szczegółowe informacje dotyczące każdego konfliktu (zamapowanego na pojedynczą nieudaną próbę aktualizacji), w tym dostęp do MemberConflicts kolekcji. Każdy konflikt elementów członkowskich jest mapowany na jeden element członkowski w aktualizacji, która nie powiodła się podczas sprawdzania współbieżności.

Przykład

Poniższy kod przedstawia przykłady obu wartości.

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)

Zobacz też