我有 2 个项目 - 一个包含 EDM 实体框架模型的类库和一个单独的 ASP.NET MVC 项目。
我对如何使用 MVC 编辑和保存对实体的更改感到有疑问。在我的控制器中我有:
public class UserController : Controller
{
public ActionResult Edit(int id)
{
var rep = new UserRepository();
var user = rep.GetById(id);
return View(user);
}
[HttpPost]
public ActionResult Edit(User user)
{
var rep = new UserRepository();
rep.Update(user);
return View(user);
}
}
My UserRepository
有一个像这样的 Update 方法:
public void Update(User user)
{
using (var context = new PDS_FMPEntities())
{
context.Users.Attach(testUser);
context.ObjectStateManager.ChangeObjectState(testUser, EntityState.Modified);
context.SaveChanges();
}
}
现在,当我在编辑用户页面上单击“保存”时,参数user
仅包含两个填充值:Id 和 FirstName。我认为这是因为我只在视图中显示这两个属性。
我的问题是,如果我要更新用户的名字,然后想保存它,我该怎么处理其他用户的名字User
视图中未显示的属性,因为它们现在在视图中包含 0 或 NULL 值user
object?
我已经阅读了很多有关使用存根实体的内容,但我一无所获,因为我见过的示例都没有真正起作用。即我不断收到 EntityKey 相关的异常。
有人可以向我指出一个关于如何使用由 MVC 前端调用的存储库类更新 EF 4 实体的好教程/示例吗?