我在尝试保存编辑页面时收到以下实体框架错误
"存储更新、插入或删除语句影响了意外的行数 (0)。自加载实体以来,实体可能已被修改或删除。
_db.Entry(product).State = EntityState.Modified;
_db.SaveChanges();
这是我的编辑控制器方法
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(Product product)
{
try
{
if (ModelState.IsValid)
{
_db.Entry(product).State = EntityState.Modified;
_db.SaveChanges();
return RedirectToAction("Index");
}
}
catch (DataException)
{
ModelState.AddModelError("", "Unable to save changes. Try again,
and if the problem persists see your system administrator.");
}
ViewBag.CategoryId = new SelectList(_db.Categories, "CategoryId",
"CategoryName", product.CategoryId);
return View(product);
}
_db.Entry(product).State = product.Id == 0 :EntityState.Add ? EntityState.Modified;
_db.SaveChanges();
仅当产品已经存在时,修改才有效。 如果没有,则在数据库中添加产品实例。
这是因为您正在尝试删除尚不存在的记录。
您可以通过执行以下操作来捕获此异常
var prdct= db.products.Find(product.id);
if(prdct != null)
{
db.Entry(product).State = EntityState.Modified;
db.SaveChanges();
}else
{
return NotFound();
}