[HttpPost]
public ActionResult Edit(Movie movie)
{
if (ModelState.IsValid)
{
db.Entry(movie).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(movie);
}
此操作接收电影模型并在数据库中更新
但我无法弄清楚如何
movie
对象没有附加到db,那么实体框架如何知道db中哪一行应该更新?
我确信Entry方法与它有关,但我真的不知道这个方法的作用。我读到它提供了信息,但我无法理解如何只更改State
附加和跟踪的条目的DBContext
。
答案 0 :(得分:25)
它只是将实体附加到dataContext。否则,您必须使用主键搜索实体,然后编辑该值并保存。
如果您知道某个实体已经存在于数据库中但可能已对其进行了更改,那么您可以告诉上下文附加实体并将其状态设置为Modified。 http://msdn.microsoft.com/en-US/data/jj592676