2010-02-24 152 views
-1

我是新来的EF和我一直在使用asp.net mvc数据绑定方法来更新我的模型“tryupdatemodel”,现在我不得不更新实体从服务层,因为TryUpdateModel是一个asp.net mvc方法,我不能在服务层中使用它。实体框架更新现有实体没有ASP.NETMVC TryUpdateModel

我需要做什么来更新实体的数据而不使用此方法?

我正在使用存储库。

回答

0

没有办法做到这一点,您必须从数据库加载实体并自己更新属性。

+0

与他的问题有什么相同之处? – LukLed 2010-02-24 19:14:23

+0

实际上,它确实有,我使用帮助方法来更新数据而无需进行数据库调用,您只需将实体附加到上下文(使用附加的EF方法),然后您就会为该实体生成实体关键字,最后用foreach方法将所有属性标记为SetModifiedProperty。然后,你可以拯救沃拉,完成它。您只需调用该方法传递实体和实体集。如果有人有更好的方法,请告诉我;)谢谢“ – Rick 2010-02-24 21:29:31

+0

@瑞克:手动做这件事总是有可能的,但我们谈论的不是这样做,而且有办法做到这一点,所以这个答案是错误的。 – LukLed 2010-02-24 21:47:51

1

不要在服务层使用它。您可以在控制器中放置类似的代码:

var entity = Service.Get(id); //get updated entity 
TryUpdateModel(entity); 
if (ModelState.IsValid) 
    Service.Save(entity); //here you can save to database and perform additional validation 
+0

嗯,我不能在controlles做,因为我使用WCF和做服务调用的数据更新。 – Rick 2010-02-24 21:24:13

+0

我不知道您的通话究竟如何做,我的WCF技能是平庸的,所以请提供一些细节。 – LukLed 2010-02-24 21:46:00