Heim >Backend-Entwicklung >C++ >Wie kann in Entity Framework 6 das Problem behoben werden, dass die Anweisung „Speicheraktualisierung, -einfügung oder -löschung eine unerwartete Anzahl von Zeilen beeinträchtigt' hat?

Wie kann in Entity Framework 6 das Problem behoben werden, dass die Anweisung „Speicheraktualisierung, -einfügung oder -löschung eine unerwartete Anzahl von Zeilen beeinträchtigt' hat?

Barbara Streisand
Barbara StreisandOriginal
2025-01-07 08:22:40727Durchsuche

How to Resolve

Auflösen einer Parallelitätsausnahme in Entity Framework 6-Datensatzaktualisierungen

Beim Versuch, einen Datensatz mit Entity Framework 6 zu aktualisieren, tritt möglicherweise der Fehler „Aktualisierung speichern, einfügen oder“ auf Die Löschanweisung hat eine unerwartete Anzahl von Zeilen beeinflusst.“ Dieser Fehler tritt auf, weil der Datensatz seit dem ersten Laden in den Kontext möglicherweise geändert oder gelöscht wurde.

Um dieses Problem zu beheben, können Sie den folgenden Ansatz verwenden:

  1. Rufen Sie den ab Datensatz aus der Datenbank mithilfe der SingleOrDefault-Methode.
  2. Überprüfen Sie mithilfe der if-Bedingung, ob der Datensatz vorhanden ist.
  3. Ändern Sie die abgerufenen Datensätze direkt Eigenschaften nach Bedarf.
  4. Speichern Sie die Änderungen an der Datenbank mit der SaveChanges-Methode.

Hier ist ein aktualisiertes Codebeispiel, das diesen Ansatz demonstriert:

using (var db = new MyContextDB())
{
    var result = db.Books.SingleOrDefault(b => b.BookNumber == bookNumber);
    if (result != null)
    {
        result.SomeValue = "Some new value";
        db.SaveChanges();
    }
}

Dies Der aktualisierte Code ruft den Datensatz ab, weist den neuen Wert der entsprechenden Eigenschaft zu und speichert dann die Änderungen. Indem Sie den abgerufenen Datensatz direkt ändern, vermeiden Sie die Notwendigkeit, ihn explizit anzuhängen oder den Entitätsstatus festzulegen, wodurch die Parallelitätsausnahme aufgelöst wird.

Das obige ist der detaillierte Inhalt vonWie kann in Entity Framework 6 das Problem behoben werden, dass die Anweisung „Speicheraktualisierung, -einfügung oder -löschung eine unerwartete Anzahl von Zeilen beeinträchtigt' hat?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn