こんにちは、私はこのようなものを持っています:
public ActionResult Edit(int id)
{
var movie = (from m in _db.Movies where m.Id == id select m).First();
return View(movie);
}
[HttpPost]
public ActionResult Edit(Movie movie)
{
try
{
var originalMovie = (from m in _db.Movies where m.Id == movie.Id select m).First();
_db.Movies.ApplyCurrentValues(movie);
_db.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
この例は、Data Model First アプローチを使用して Entity Framework を使用して MVC 3 でエンティティを編集する適切な方法から取られましたか?
列の監査を行っているため、変更された列のみを DB SQL クエリ (UPDATE Movie ....) に渡したいと思います。
コードは正常に動作しますが、問題は、私の「ムービー」エンティティに「FlagOldMovie」プロパティがあり、他の 10 個のプロパティが同じままであるため、このビューで使用していないことですが、エンティティフレームワークがそれに置かれていることです。プロパティはデフォルト値であるため、「ApplyCurrentValues」は変更を検出し、そのプロパティも更新されます。
回避策は、変更されていないプロパティを html 非表示入力に渡すことですが、そのプライベート データです。
何か案が?