Vorgehensweise: Angeben, wann Parallelitätsausnahmen ausgelöst werden
In LINQ to SQL wird eine ChangeConflictException-Ausnahme ausgelöst, wenn Objekte aufgrund von Konflikten bei der vollständigen Parallelität nicht aktualisiert werden. Weitere Informationen finden Sie unter Optimistische Nebenläufigkeit: Übersicht.
Bevor Sie die Änderungen an die Datenbank übergeben, können Sie angeben, wann Parallelitätsausnahmen ausgelöst werden sollen:
Auslösen der Ausnahme beim ersten Fehler (FailOnFirstConflict).
Beenden aller Updateversuche, Sammeln aller Fehler und Melden aller Fehler in der Ausnahme (ContinueOnConflict).
Bei Auslösung ermöglicht die ChangeConflictException-Ausnahme den Zugriff auf eine ChangeConflictCollection-Auflistung. Diese Auflistung enthält Details zu jedem Konflikt (mit Zuweisung zu einem bestimmten fehlgeschlagenen Updateversuch), einschließlich des Zugriffs auf die MemberConflicts-Auflistung. Jeder Memberkonflikt im Update wird einem Member zugewiesen, der die Parallelitätsprüfung nicht bestanden hat.
Beispiel
Der folgende Code zeigt Beispiele für beide Werte.
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)