Asp.net

DBContext.Entry 有什麼作用?

  • February 23, 2013
[HttpPost]
public ActionResult Edit(Movie movie)
{
   if (ModelState.IsValid)
   {
       db.Entry(movie).State = EntityState.Modified;
       db.SaveChanges();
       return RedirectToAction("Index");
   }
   return View(movie);
}

這個動作接收一個電影模型並在數據庫中更新它。

但我不知道怎麼做。

movie對象未附加到數據庫,那麼實體框架如何知道數據庫中的哪一行應該被更新?

我確信 Entry 方法與它有關,但我真的不知道這個方法是做什麼的。我讀到它提供了資訊,但我無法理解如何僅通過更改State條目的 來附加並由DBContext.

它只是將實體附加到 dataContext。否則,您將不得不使用主鍵搜尋實體,然後編輯該值並保存它。

如果您有一個您知道數據庫中已經存在但可能已對其進行更改的實體,那麼您可以告訴上下文附加該實體並將其狀態設置為已修改。 <http://msdn.microsoft.com/en-US/data/jj592676>

引用自:https://stackoverflow.com/questions/15045763