EF 更新Model 报错:Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded

1、报错环境

目的 更新 model,   但是更新之前 根据外键 我查询了 是否已经存在:

dbContext.model.Where(d => d.HotelId == hotelId).FirstOrDefault();

如果 存在 就更新, 不存在就Add;

存在 时 去 更新:

dbContext.Entry(model).State = EntityState.Modified;
dbContext.SaveChanges()

此时运行就会报错: Store update, insert, or delete statement affected an unexpected number of rows (0)

 

解决办法:

 dbContext.model.Where(d => d.HotelId == hotelId).FirstOrDefault();

 dbContext.Entry(mod).State = EntityState.Detached;    // 查询完后 dbContext实体 内 已经存在了, 要设置为 detach ,然后再去更新

dbContext.Entry(model).State = EntityState.Modified;
dbContext.SaveChanges()

 

posted @ 2017-03-08 11:53  jason_LSZ  阅读(2447)  评论(0编辑  收藏  举报