存储更新、插入或删除语句受影响的意外行数 (0) 保存编辑页面



我在尝试保存编辑页面时收到以下实体框架错误

"存储更新、插入或删除语句影响了意外的行数 (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();
}

最新更新