这是一个简单的问题:
基本上,当 POST 提交域模型以对控制器动作进行更新操作时,我会在动作内部调用 .Find(),然后将值分配给这个检索到的对象的相应字段,然后调用 SaveChanges()。
现在这很好,除非我的课程有几十个更新的字段。我想知道是否有更短的方法而不枚举方法中的每个字段?
谢谢。
这是一个简单的问题:
基本上,当 POST 提交域模型以对控制器动作进行更新操作时,我会在动作内部调用 .Find(),然后将值分配给这个检索到的对象的相应字段,然后调用 SaveChanges()。
现在这很好,除非我的课程有几十个更新的字段。我想知道是否有更短的方法而不枚举方法中的每个字段?
谢谢。
如果您将整个域模型传递给视图,则可以使用它来保存它:
[HttpPost]
public ActionResult Edit(MyDomainModel model) {
db.Entry(model).State = EntityState.Modified;
db.SaveChanges();
return ....;
}
例如,如果您正在使用视图模型,您可以使用AutoMapper将视图模型映射到域模型,这样会更简单一些。
也许我没有正确回答这个问题。但是,如果您的视图正在传递更新的域模型,为什么不直接使用 EF 进行更新而不是映射呢?