DataContext からオブジェクトを取得し、HTTP ポストで更新するために LINQ で使用できるビルド済みの ModelBinder はありますか?
たとえば、現在、次のコード ブロックがあります。
[AcceptVerbs (HttpVerbs.Post)]
public ActionResult Edit (Project project)
{
var projectService = Factory.GetService<IProjectService> ();
project = projectService.GetProject (project.ProjectId);
UpdateModel<Project> (project);
if (!ModelState.IsValid)
return View (project);
project = projectService.SaveProject (project);
return RedirectToAction ("Details", new { id = project.ProjectId });
}
(IProjectService は LINQ データ コンテキストへの呼び出しをラップします)
実際に LINQ データ コンテキストを介してデータベースの更新を実行するには、プロジェクト インスタンスを再度取得してから、そのインスタンスを更新する必要があります。
最初にデータ コンテキストからプロジェクト インスタンスを取得せずに単にプロジェクト インスタンスを保存しようとすると、データベースに何も書き戻されません。LINQ データ コンテキストはオブジェクトについて何も知らないため、それに対して何もしないと仮定しています。
Projects テーブル クラスで Attach メソッドを使用しても機能せず、例外がスローされます。