我试图在我的模型上为string属性设置MaxLength (ASP.Net 5,EF7)。
我可以毫无问题地应用迁移。但是,一旦在运行'dnx数据库更新‘之后创建了数据库,我为其设置MaxLength(10)的模型在数据库中具有数据类型varchar(1)。
我已经检查了DBContext以及快照文件,列的最大值为10。
我不知道为什么代码第一次没有拿起MaxLength?
发布于 2016-04-26 09:32:54
我发现了这个问题,我希望它也能帮助到其他人。
事实证明,我已经对模型和dbcontext都有了数据注释。一定是在其中一个上面。
我已经从dbcontext 'onModelCreating‘方法中删除了所有数据注释,比如IsRequired()和HasMaxLength,并且只在我的模型上使用它们。我已经更新了用于InitialSchema迁移的数据库,现在所有的数据类型都是正确的。
发布于 2016-04-22 16:20:30
不要使用MaxLength (10),而是使用StringLength(10)。
以前的EF版本仅用于代码第一迁移中的模式生成,而MaxLength则同时适用于迁移和客户端验证。
我不能告诉你为什么MaxLength不适合你,它可能在目前的开发阶段只考虑到StringLength。
https://stackoverflow.com/questions/36798215
复制相似问题