我正在使用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 –