An sich ist diese Interaktion kein Problem, das eigentliche Problem tritt auf, wenn nach dem Ändern oder Berühren dieses Elements ein Speichern in der Datenbank erforderlich ist und dann zwei oder mehr Benutzer gleichzeitig eine Aktion für dasselbe Element ausführen möchten, d. H wo unsere Logik ein Verhalten definieren muss, um zu wissen, wie dies angemessen gehandhabt werden kann.
Gleichzeitigkeit in Datenbanken
Wie wir zu Beginn erklärt hatten, liegt die Übereinstimmung vor, wenn zwei oder mehr Akteure an einem Element in unserer Anwendung arbeiten und eine Aktion gegen die Datenbank generieren.
Diese Art von Konflikten kann die Leistung unserer Anwendung in den Augen des Benutzers beeinträchtigen. Daher müssen wir prüfen, ob die Bereiche, die sich für die gleichzeitige Verwendung eignen oder nicht, geplant sind.
Arten der Nebenläufigkeit
Sehen wir uns einige Arten von Parallelität an. Auf diese Weise können wir ein wenig besser verstehen, welche Art von Aktionen wir in unseren Anwendungen ausführen können:
Wie löst ASP.NET MVC das Problem?
ASP.NET MVC unterstützt den pessimistischen Ansatz nicht, daher müssen wir mit dem Optimisten zusammenarbeiten. Dazu müssen wir unsere Strukturen mit Datumsfeldern ausstatten, um die letzte Änderung zu speichern, damit wir wissen, ob der Wert dann geändert wurde dass wir den Datensatz erhalten haben und bevor wir ihn speichern, können wir eine Warnung erhalten und somit entscheiden, ob wir diese Werte überschreiben oder nicht.
Sehen wir uns ein kleines Codebeispiel an, wie wir dies überprüfen können:
Wir haben dann festgestellt, dass wir zum Zeitpunkt der Änderung in der Datenbank überprüft haben, ob das Feld nach dem Lesen geändert wurde. In diesem Fall lösen wir eine Ausnahme aus , mit der wir die entsprechenden Maßnahmen ergreifen können. Wir lassen auch Platz für die Arbeit die verschiedenen Ausnahmen, die generiert werden können.
Nach Abschluss dieses Lernprogramms wissen wir bereits etwas mehr über die Parallelität in Datenbanken und die Behebung des Problems in ASP.NET MVC .