[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