我将 EF Database First 与现有的旧数据库一起使用。数据库中几乎每个字段都有一个 maxlength 值,我可以在 .edmx 文件中查看该值。
例如,on of the fields CCSTATUS
is nvarchar(20)
。当用户输入超过 20 个字符时,它会清除ModelState.IsValid
,但会抛出DbEntityValidationException
on db.SaveChanges()
。
对于我添加了 DataAnnotations 的属性,当它们无法验证时,它们会添加模型错误,然后可以将其显示给用户以便进行更正。我知道我可以[MaxLength(n)]
为模型元数据类中的所有属性添加属性,但是有没有办法让 EF 添加模型错误而不是DbEntityValidationException
在值大于属性的最大长度时抛出?
编辑
谢谢大家的回答。我最终使用EF Power Tools逆向工程师 Code First 功能从我的数据库中生成 Code First 模型,其中包括适当的 maxlength 属性和其他必要的注释。