Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 3308|Antwort: 0

[Quelle] EF-Nebenzahligkeitsausnahme DbUpdateConcurrencyException fragt den zwischengespeicherten Wert ab

[Link kopieren]
Veröffentlicht am 01.11.2023 20:30:43 | | | |
Anforderungen: Verwenden Sie EF-optimistische Sperren zur Kontrolle der Nebenläufigkeit, fügen Sie bei Gleichzeitigkeit einen Wiederholungsmechanismus hinzu, stellen Sie fest, dass die nach dem Neuanruf erneut abgefragten Daten EF-Zwischendaten sind, was zu immer gespeicherten Ausnahmen führt.

Die Datenbankoperation sollte 1 Zeile beeinflussen, tatsächlich aber 0 Zeilen; Die Daten könnten seit dem Laden der Entitäten verändert oder gelöscht worden sein. SieheDer Hyperlink-Login ist sichtbar.Für Informationen zum Verständnis und Umgang mit Ausnahmen für optimistische Nebenläufigkeit.

Diese Diskussion führte zu Gedanken zu EF 6.x und EF Core Query-Caching:Der Hyperlink-Login ist sichtbar.

Umgang mit Unterscheidungen zwischen gleichzeitigem Zeitstempel und Concurrency Check
https://www.itsvse.com/thread-3616-1-1.html

Wie unten gezeigt:



SQL-Skript:

ASP.NET Core 6 Backend-Code:

Controller-Code:



Option 1 (empfohlen)

gebrauchenEntityState.DetachedMarkieren Sie den Entitätszustand als nicht vom Kontext verfolgt und ändern Sie ihn wie folgt:

Wie unten gezeigt:



Option 2

Rufen Sie die Reload()-Methode auf, um das Entitätsobjekt zu aktualisieren, der Code ist wie folgt:

Obwohl das Nachladen auch EF-Cache-Werte aktualisieren kann,Dies führt dazu, dass SQL-Abfragen mehrmals ausgeführt werdenDaher wird es nicht empfohlen.

Die anderen beiden Methoden, AsNoTracking, sind nicht geeignet, und die andere ist nicht getestet.

(Ende)




Vorhergehend:.NET wandelt die varibinäre Zeichenkette der Datenbank in ein Byte[]-Array um
Nächster:OpenWRT-Einstellungen zum Starten des Ausführungsbefehls
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com