2007-08-25

ChangeConflictException

LINQ to SQL benutzt die Optimistic Concurrency Methode als Standard wenn die Daten in die Datenbank geschrieben werden. In dieser Methode können mehrere Parteien die Daten aus der Datenbank lesen aber beim Schreiben gilt das Prinzip der Erste gewinnt.


In Multi-User-Umgebungen kommt es vor, dass mehr als ein Benutzer die gleichen Daten ändern und versuchen diese Daten in die Datenbank zu speichern. Bei der Optimistic Concurrency Methode gewinnt der erste Benutzer und seine Daten werden in die Datenbank gespeichert. Der nächste Benutzer wird mit einer Meldung gewarnt, dass die Daten in der Datenbank in der zwischen Zeit geändert wurden.


Die ChangeConflictException wird vom DataContext als eine Exception gefeuert, während dem DataContext versucht die Daten in die Datenbank zu speichern und wenn die Daten nicht mehr dem Original entsprechen.

No comments: