2012-09-20 43 views
2

在我的應用程序中,我有數據庫模型和查看錶單模型。當我在驗證輸入的視圖窗體模型屬性中有數據註釋時,是否需要在我的數據庫模型屬性中複製這些註釋?我的意思是,當我在某些屬性上指定[Range(5,10)]之類的東西時,它是否對數據庫進行了任何更改?或者可能是context.SaveChanges()使用這些註釋驗證最終模型,然後將其保存到數據庫中?ASP MVC + EF代碼優先 - 數據註釋僅用於驗證目的嗎?

Reassuming:是否有必要將數據註釋放在我的數據庫模型類中,當我在視圖模型類中已經有了這些註釋時?

回答

2

當您嘗試將更改保存到數據庫時,EF將使用DataAnnotations驗證您的模型,因此它將成爲防止無效數據的又一層保護。如果輸入無效數據,上下文將返回EntityValidationErrors。

某些DataAnnotations可以轉換爲SQL更新(Required和MaxLength會立即跳轉)但其他人不需要。

+0

謝謝。我需要聽到這一點。 ;) – ojek

+1

這是一個將影響MSDN數據庫生成的列表http://msdn.microsoft.com/en-us/library/gg197525(v=vs.103).aspx –