Ich versuche, den Datensatz mit EF6 zu aktualisieren. Suchen Sie zuerst den Datensatz, falls vorhanden, und aktualisieren Sie ihn. Hier ist mein Code: -
var book = new Model.Book
{
BookNumber = _book.BookNumber,
BookName = _book.BookName,
BookTitle = _book.BookTitle,
};
using (var db = new MyContextDB())
{
var result = db.Books.SingleOrDefault(b => b.BookNumber == bookNumber);
if (result != null)
{
try
{
db.Books.Attach(book);
db.Entry(book).State = EntityState.Modified;
db.SaveChanges();
}
catch (Exception ex)
{
throw;
}
}
}
Jedes Mal, wenn ich versuche, den Datensatz mit dem obigen Code zu aktualisieren, wird folgende Fehlermeldung angezeigt: -
{System.Data.Entity.Infrastructure.DbUpdateConcurrencyException: Die Anweisung zum Speichern, Einfügen oder Löschen des Speichers hat eine unerwartete Anzahl von Zeilen (0) beeinflusst. Entitäten wurden möglicherweise geändert oder gelöscht, seit Entitäten geladen wurden. Aktualisieren Sie den ObjectStateManager-Eintrag
catch (Exception ex){throw;}
ist redundant und Sie können es vollständig entfernen.