我试图添加一个crud操作来编辑数据库中的项目,但是我得到了这个DbUpdateConcurrencyException。可能是什么问题? 提前谢谢。
控制器:
//MODAL POPUP FOR EDIT
public ActionResult EditItem()
{
return PartialView();
}
//POST: EDIT ITEM
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult EditItem(H_Table item)
{
db_connection.Entry(item).State = EntityState.Modified;
db_connection.SaveChanges();
return RedirectToAction("Index");
}
答案 0 :(得分:0)
在数据库中添加要更新的表名。
public ActionResult EditItem(H_Table item)
{
H_Table oldObj= db.H_Table.Find(item.ID);
db.Entry(oldObj).CurrentValues.SetValues(item);
db_connection.SaveChanges();
return RedirectToAction("Index");
}
答案 1 :(得分:0)
基本上你必须首先检查你的模型是否有效,然后再进行更新操作:
public ActionResult EditItem(H_Table item)
{
if(ModelState.IsValid)
{
using (var db = new YourDbContext())
{
db.Entry(item).State = EntityState.Modified;
db.SaveChanges();
}
return RedirectToAction("Index");
}
}
但是我建议您首先使用其Id找到该项目,然后通过从视图模型获取的内容填充同一类的对象,然后将其插入到数据库中。