2010-02-24 128 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