EF 更新Model 报错:Store update, insert, or delete statement affected an unexpected number of rows (0). E...

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()

 

转载于:https://www.cnblogs.com/generalLi/p/6518735.html

你可能感兴趣的:(数据库,c#)