我正在使用EF來處理數據庫的ASP.NET MVC應用程序。我需要更改一個字符串屬性,該屬性具有StringLength(1000)
屬性並被映射到數據庫中的nvarchar(1000)
列。更新數據庫和更改模型後的實體框架驗證錯誤
由於最近的需求,我更新了數據庫以使用nvarchar(max)
,並從模型類中刪除了StringLength(1000)
屬性。
問題是。每次我想插入具有此屬性長度大於1000的新實體時,我都會收到驗證錯誤,說它只能包含1000個字符。當它較低時,一切都按預期工作。
該字段必須是字符串或數組類型,其最大長度爲 '1000'。
我不知道這個錯誤來自哪裏。沒有觸發器或存儲過程。我也嘗試使用屬性MaxLength
或StringLenght(int.maxInt)
,但得到了錯誤。也沒有與Fluent API的額外配置。編輯:不幸的是,它看起來不像愚蠢的問題,不重建解決方案。我現在嘗試了兩次(+清理),問題依然存在。
解決方案:所以出於某種原因,在內部使用的項目中存在另一個模型類。它的屬性完全沒有單一屬性。在將MaxLength添加到單個屬性後,它可以工作。
你確定你不只是使用在執行程序集的舊的DLL? –
要麼你沒有清理和重建解決方案,因此正在使用過時的DLL,或者你在其他地方定義了'StringLength(1000)'。 – user1666620
看看這個。可能這會幫助你。 http://stackoverflow.com/questions/5414611/entity-framework-validation-confusion-maximum-string-length-of-128 –