我正在尝试使用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条目
3 回答
MYYA
TA贡献1868条经验 获得超4个赞
您正在尝试更新记录(对我来说,这意味着“更改现有记录的值并保存回去”)。因此,您需要检索对象,进行更改并保存。
using (var db = new MyContextDB())
{
var result = db.Books.SingleOrDefault(b => b.BookNumber == bookNumber);
if (result != null)
{
result.SomeValue = "Some new value";
db.SaveChanges();
}
}
- 3 回答
- 0 关注
- 822 浏览
添加回答
举报
0/150
提交
取消