是否有一个预构建的 ModelBinder 可以与 LINQ 一起使用以从 DataContext 获取对象并在 HTTP 帖子上更新它?
例如,目前我有这段代码:
[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 方法也不起作用,它会引发异常。