Inhaltsverzeichnis:

Wie handhabt Entity Framework die Parallelität?
Wie handhabt Entity Framework die Parallelität?

Video: Wie handhabt Entity Framework die Parallelität?

Video: Wie handhabt Entity Framework die Parallelität?
Video: Schnell und überall: Datenzugriff mit Entity Framework Core 2.0 2024, Kann
Anonim

Entitäts-Framework unterstützt optimistisch Gleichzeitigkeit standardmäßig. EF spart ein juristische Person Daten in die Datenbank, vorausgesetzt, die gleichen Daten wurden seit dem juristische Person war geladen. Wenn festgestellt wird, dass sich die Daten geändert haben, dann eine Ausnahme ist geworfen und Sie müssen den Konflikt lösen, bevor Sie erneut versuchen, ihn zu speichern.

Wie verwaltet Entity Framework außerdem die Parallelität?

Der allgemeine Ansatz zur Behandlung von Parallelitätskonflikten ist:

  1. Catch DbUpdateConcurrencyException während SaveChanges.
  2. Verwenden Sie DbUpdateConcurrencyException.
  3. Aktualisieren Sie die ursprünglichen Werte des Parallelitätstokens, um die aktuellen Werte in der Datenbank widerzuspiegeln.
  4. Wiederholen Sie den Vorgang, bis keine Konflikte auftreten.

Anschließend stellt sich die Frage, wie die Web-API mit der Parallelität umgeht. Wie man Umgang mit Parallelität in ASP. NET Core Web-API . Erstellen Sie ein leeres Projekt und aktualisieren Sie die Startup-Klasse, um Dienste und Middleware für MVC hinzuzufügen. Fügen Sie einen Controller mit GET und PUT hinzu, um dies zu demonstrieren Gleichzeitigkeit . Senden Sie eine GET-Anfrage und beobachten Sie den ETag-Header (mit Postman).

Anschließend stellt sich die Frage, was der Client Wins- und Store Wins-Modus in Entity Framework-Parallelität ist.

In Laden gewinnt / Datenbank Gewinnt die Daten vom Server werden in Ihr geladen juristische Person Objekte. Kunde gewinnt ist das Gegenteil von gespeicherte Gewinne , Daten aus dem juristische Person Objekt wird in der Datenbank gespeichert. Wir müssen die „Refresh“-Methode des verwenden Entity-Framework Kontext und wir müssen dafür die Aufzählung „RefreshMode“verwenden.

Unterstützt Entity Framework pessimistisches Sperren?

Pessimistisch Gleichzeitigkeit beinhaltet verriegeln Datenbankeinträge, um zu verhindern, dass andere Benutzer darauf zugreifen oder sie ändern können, bis die Schloss ist freigegeben, ähnlich wie wenn zwei Benutzer versuchen, dieselbe Datei auf einer Netzwerkfreigabe zu öffnen. Entitäts-Framework Kern bietet keine Unterstützung zum pessimistisch Gleichzeitigkeitskontrolle.

Empfohlen: