【发布时间】:2016-03-29 11:28:16
【问题描述】:
我正在开发使用 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)。 -
看看这个。可能这会对你有所帮助。 stackoverflow.com/questions/5414611/…
-
即使你删除数据库并重建它,它也不起作用?
-
@Mr.B 不幸的是,我不能简单地删除数据库。对于一个我不认为这个项目首先使用代码(我只是在做一些扩展和维护)它也有大量的数据,重新开始意味着重新调整它以进行测试。但是主要问题是我需要适合生产的修复程序,重建整个数据库不是。
标签: c# asp.net-mvc database entity-framework