J'essaie de mettre à jour l'enregistrement en utilisant EF6. Si vous trouvez d'abord l'enregistrement, s'il existe, mettez-le à jour. Voici mon 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;
}
}
}
Chaque fois que j'essaie de mettre à jour l'enregistrement en utilisant le code ci-dessus, j'obtiens cette erreur: -
{System.Data.Entity.Infrastructure.DbUpdateConcurrencyException: l'instruction de mise à jour, d'insertion ou de suppression de magasin a affecté un nombre inattendu de lignes (0). Les entités peuvent avoir été modifiées ou supprimées depuis le chargement des entités. Actualiser l'entrée ObjectStateManager
catch (Exception ex){throw;}
est redondant et vous pouvez le supprimer complètement.