Fehlerbehebung "Anhängen von Entität mit doppelten Primärschlüssel" -Fehler in ASP.NET MVC
ASP.NET -MVC -Anwendungen mit Entity Framework können den Fehler aufnehmen: "Anhängen einer Entität vom Typ 'ModelName' ist fehlgeschlagen, da eine andere Entität desselben Typs bereits den gleichen Primärschlüsselwert hat." Dies tritt normalerweise während eines Postoperiums auf, wenn versucht wird, ein Unternehmen zu aktualisieren. Lassen Sie uns gemeinsame Ursachen und Lösungen untersuchen.
Problem 1: Abnahmebereich
Das Entität könnte vom Entitäts -Framework -Kontext abgelöst werden, um zu verhindern, dass sie Aktualisierungen erkennen. Um dies zu beheben, schalten Sie die Entität mit der Attach()
-Methode vor erneut an Modified
, um ihren Zustand auf
Problem 2: Gleichzeitige Datenbankmodifikationen
Mehrere Benutzer oder Prozesse, die gleichzeitig auf die Datenbank zugreifen, können zu Konflikten führen. Aktualisieren Sie vor dem Aktualisieren das Entität aus der Datenbank, um sicherzustellen, dass Sie mit der neuesten Version arbeiten.
Problem 3: widersprüchliche Validierung oder Zugriffskontrolle
Modified
benutzerdefinierte Validierung oder Zugriffskontrolllogik kann den Status des Unternehmens ungewollt ändern. Wenn diese Überprüfungen die Entität laden, bevor der Status
Problem 4: Asynchronous Controller -Probleme
await
asynchrone Controller -Aktionen können Probleme mit Parallelität verursachen. Verwenden Sie das Schlüsselwort
Beispielszenario und Lösung:
canUserAccessA()
Ein Beispiel zeigte den Fehler, der aus einer benutzerdefinierten Funktion (.AsNoTracking()
) stammt, die die Entität vor dem Update lud. Die Lösung bestand darin,
Das obige ist der detaillierte Inhalt vonWie beheben Sie den Fehler 'Entität mit doppelter Primärschlüssel' in ASP.NET MVC?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!