mvc中使用EF更新

直接new一个,然后设置值,而不要从库中查。

Attach,然后改变状态,最后save。(Attach之后状态会变成unchanged所以要手动更改状态,详情请看“在不同的ObjectContext中更新数据”)

[HttpPost]
public ActionResult Edit(int id, FormCollection collection)
{
    if (ModelState.IsValid)
    {
        admins admins = new admins();
        UpdateModel(admins);                
        db.admins.Attach(admins);
        db.ObjectStateManager.ChangeObjectState(admins, EntityState.Modified);
        db.SaveChanges();                
    }
    return RedirectToAction("Index");
}

这里必须使用具体的db.xxx.Attach

不能直接使用db.Attach

否则报错

image

原文地址:https://www.cnblogs.com/czcz1024/p/2198337.html