2013-04-08 203 views
0

我已將兩個字段(A,B)添加到我的表中。我有這些字段填充 我做新的註冊。但是,當我對包含這些字段的表單進行更新時,它似乎會清除字段(A,B)中的值。有沒有辦法在控制器或模型中設置驗證,以防止更新,當我沒有傳遞值更新?MVC更新刪除數據

+0

這是誤解ViewModel的另一個經典例子。在這裏有兩篇文章,[這一個](http://stackoverflow.com/questions/9326450/in-mvc-what-is-a-viewmodel)和[另一個](http://stackoverflow.com/questions/11064316/what-is-viewmodel-in-mvc),它有一個例子可以讓你知道它的作用。基本上,如果你有一個實體你不希望所有的字段都更新,那麼這是一個有視圖模型的候選人。但我會建議每次使用viewmodel。 – 2013-04-09 00:10:45

回答

2

實體框架更新所有已更改的字段。如果您的字段有數據,EF會將空值視爲更改。

您應該檢索記錄,只更新要更改的字段,然後重新保存。

+0

這是否意味着我需要在更新時在表單中包含該字段?有沒有辦法不包括在表單中的字段,仍然有EF不更新它? – user1929393 2013-04-08 23:24:49

+0

@ user1929393,最簡單的方法是從數據庫中提取對象,更新相應的字段,然後保存 – 2013-04-08 23:59:25

+0

@ user1929393 - 否,這意味着在從數據庫檢索記錄後,更新所需的字段更改,然後保存更改。 – 2013-04-09 13:39:49