为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用Entity Framework 6更新记录?

如何使用Entity Framework 6更新记录?

C#
ibeautiful 2019-10-15 11:05:22
我正在尝试使用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();

    }

}


查看完整回答
反对 回复 2019-10-15
  • 3 回答
  • 0 关注
  • 822 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信