更新数据库和更改模型

时间:2016-03-29 11:28:17

标签: c# asp.net-mvc database entity-framework

我正在开发使用EF来处理数据库的ASP.NET MVC应用程序。我需要更改一个具有StringLength(1000)属性的字符串属性,并将其映射到数据库中的nvarchar(1000)列。

由于最近的要求,我更新了数据库以使用nvarchar(max),并从模型类中删除了StringLength(1000)属性。

问题是。每次我想插入具有此属性且长度大于1000的新实体时,我会收到验证错误,说它只能是1000个字符。当它更低时,一切都按预期工作。

  

该字段必须是字符串或数组类型,最大长度为   '1000'。

我不知道这个错误来自哪里。没有触发器或存储过程。我也尝试使用属性MaxLengthStringLenght(int.maxInt),但收到错误。 Fluent API也没有其他配置..

编辑:不幸的是,不重建解决方案看起来不像是愚蠢的问题。我现在尝试了两次(+清理)并且问题仍然存在。

解决方案:因此,由于某种原因,内部使用的项目中的同一实体还有另一个模型类。它的属性完全没有单一属性。将MaxLength添加到该单个属性后,它可以正常工作。

1 个答案:

答案 0 :(得分:1)

鉴于您无法重新生成数据库,解决方案是实现部分类并对您的字段使用自定义验证。它不是那么干净,但它应该有用。

注意:在这种情况下,他们可能已经是部分类

请参考this MSDN Article