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)