我正在尝试使用 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);
}
到目前为止,一切都很好。然而,当这个表单发布时,ChangeTracker 为空/重置为默认值,因此,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 的秘诀是什么?如果我必须再次阅读以获取原始值然后应用更改,那似乎违背了自我跟踪实体的目的,不是吗?