Entity Framework Self-Tracking-Entities を使用して MVC2 アプリをセットアップしようとしています。私のビューは、STE T4 テンプレートによって生成されたエンティティ タイプの厳密に型指定されたビューです。ここに私のGETがあります:
public ActionResult Edit(int id)
{
var ri = new App1Service.App1Client().GetMyObj(id);
var changeTracking = ri.ChangeTracker.ChangeTrackingEnabled; // this shows true
return View(ri);
}
ここまでは順調ですね。ただし、このフォームが POST すると、ChangeTracker は null またはデフォルト値にリセットされるため、STE は自分自身を追跡することになっていることを突然忘れているように見えます。
[HttpPost]
public ActionResult Edit(MyObj ri)
{
// MyObj.ChangeTracker.ChangeTrackingEnabled now shows false
// so the following line doesn't save anything:
new App1Service.App1Client().SaveMyObj(ri);
return RedirectToAction("Index");
}
強く型付けされたビューを STE 全体にぶら下げる (そして POST バックする) ための秘訣は何ですか? 元の値を取得してから変更を適用するために別の読み取りを行う必要がある場合、それは自己追跡エンティティの目的を無効にしているようですよね?