我有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); } }
我的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(); } }
现在,当我在编辑用户页面上单击“保存”时,参数用户仅包含两个填充的值:Id和FirstName.我认为这是因为我只在视图中显示这两个属性.
我的问题是,如果我正在更新用户的名字,然后想要保存它,我想对视图中未显示的其他用户属性做什么,因为它们现在包含0或NULL值用户对象?
我一直在阅读很多关于使用存根实体的内容,但是我无法快速完成,因为我见过的所有实例都没有实际工作.即我一直得到EntityKey相关的例外.
有人能指出我如何使用由MVC前端调用的存储库类更新EF 4实体的好教程/示例吗?