我正在尝试使用EF6更新记录。首先查找记录,如果存在,则进行更新。 以下是我的代码:
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;
}
}
}
每次我尝试使用上述代码更新记录时,都会出现此错误:
{System.Data.Entity.Infrastructure.DbUpdateConcurrencyException: 存储更新、插入或删除语句影响了意外数量的行数 (0)。自实体加载以来,实体可能已被修改或删除。刷新ObjectStateManager条目
catch (Exception ex){throw;}
是多余的,你完全可以将其删除。 - Sriram Sakthivel