加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 迁移中未应用的最大长度

发布时间:2020-12-15 04:25:34 所属栏目:百科 来源:网络整理
导读:我正在使用带有preview2工具的efcore.sqlserver 1.0.1 – 我有一个字符串属性,它在sql server中创建为nvchar(max)字段.当我向属性添加数据注释stringlength(100)并添加新迁移时,迁移根本不会改变列. 但是,如果我添加一个Required和StringLength注释,则生成的
我正在使用带有preview2工具的efcore.sqlserver 1.0.1 – 我有一个字符串属性,它在sql server中创建为nvchar(max)字段.当我向属性添加数据注释stringlength(100)并添加新迁移时,迁移根本不会改变列.

但是,如果我添加一个Required和StringLength注释,则生成的迁移会更改列并显示(.. maxLength:100,nullable:false)

为什么只有在我改变可以为空的值时才这样做?

解决方法

我相信你需要使用MaxLengthAttribute而不是StringLengthAttribute.

https://docs.efproject.net/en/latest/modeling/max-length.html#data-annotations

这可能是因为StringLength属性具有最小长度选项,SQL本身不支持该选项,因此MaxLength属性更适合此用例.

需要明确的是,属性本身没有任何影响.它们可以包含逻辑和信息,但必须在正常执行模型中通过另一段代码的反射来使用.除了编译器赋予特殊含义的某些属性之外,例如Conditional属性.

编辑

作者发现,对于从RC2 =>升级工具集的情况,这是一个已知问题. RTM.

https://github.com/aspnet/Announcements/issues/195

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读