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

Ansehen: 49435|Antwort: 1

[Quelle] EF-Entitäten des Anhängungstyps "XXXX" scheitern, weil andere...

[Link kopieren]
Veröffentlicht am 12.05.2021 09:43:53 | | |
EF fügt eine Entität vom Typ "XXXX" an, die fehlschlägt, weil eine andere Entität desselben Typs bereits denselben Primärschlüsselwert hat. Beim Einsatz der "Attach"-Methode oder beim Setzen des Zustands der Entität auf "Unverändert" oder "Modifiziert"

Weil andere Entitäten desselben Typs bereits denselben Primärschlüsselwert besitzen. Dieses Verhalten kann auftreten, wenn die "Attach"-Methode verwendet wird oder wenn der Status einer Entität auf "Unverändert" oder "Geändert" gesetzt wird, wenn eine Entität in der Zeichnung einen Konflikt mit Schlüsselwerten aufweist
Dies kann daran liegen, dass einige Entitäten neu sind und noch keinen datenbankgenerierten Schlüsselwert (neue Entität) erhalten haben; in diesem Fall wird der Graph mit der "Add"-Methode oder dem "Added"-Entitätszustand verfolgt und der Zustand der nicht neuen Entität entsprechend auf "Unverändert" oder "Modified" gesetzt.
Tatsächlich besteht dieser Fehler darin, dass es beim Öffnen einer Transaktion in EF bereits Daten mit demselben Primärschlüssel im Kontext von EF gibt, und ich persönlich auf dieses Problem in verschiedenen Situationen stoße:

Situation 1:

Das Modifizieren oder Iterieren derselben Daten in einer Tabelle (z. B. Iteration der Lagermenge desselben Artikels), sollte dies das erste Mal sein, dass der Kontext-Cache nicht gelöscht wird

Der Code lautet wie folgt:


Die Schleife meldet hier beim ersten Mal keinen Fehler, und beim zweiten Mal wird sie fehlerhaft angezeigt

Lösung:


Situation 2:

Die Schleifenoperation fügt zunächst ein Datenstück hinzu und verändert dann die Daten

Der Code lautet wie folgt:


Auch hier werden Fehler gemeldet, insbesondere bei neuen EFs oder neuen Einheiten

Lösung:








Vorhergehend:Redis Benchmark Leistungstest
Nächster:ASP.NET Detaillierte Erklärung der Middleware-Middleware von Core (9).
Veröffentlicht am 22.09.2021 20:55:57 |
Lerne zu lernen...
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