Postupy: Určení, kdy se mají objevit výjimky souběžnosti
V LINQ to SQL je vyvolán výjimka, ChangeConflictException když objekty neaktualizují kvůli optimistickým konfliktům souběžnosti. Další informace najdete v tématu Optimistická souběžnost: Přehled.
Před odesláním změn do databáze můžete určit, kdy se mají vyvolat výjimky souběžnosti:
Vyvolá výjimku při prvním selhání (FailOnFirstConflict).
Dokončete všechny pokusy o aktualizaci, kumulujte všechna selhání a nahlaste kumulované chyby v výjimce (ContinueOnConflict).
Při vyvolání ChangeConflictException výjimka poskytuje přístup ke kolekci ChangeConflictCollection . Tato kolekce obsahuje podrobnosti o jednotlivých konfliktech (namapovaných na jednu neúspěšnou aktualizaci), včetně přístupu k kolekci MemberConflicts . Každý konflikt členů se mapuje na jednoho člena v aktualizaci, která selhala při kontrole souběžnosti.
Příklad
Následující kód ukazuje příklady obou hodnot.
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)