0

我正在尝试为我的模型上的字符串属性设置 MaxLength (ASP.Net 5, EF7)。

我可以毫无问题地应用迁移。但是,一旦在运行“dnx ef 数据库更新”后创建了数据库,我为其设置 MaxLength(10) 的模型在数据库中具有数据类型 varchar(1)。

我检查了 DBContext 以及快照文件,该列的最大长度为 10。

我不确定为什么代码首先没有获取 MaxLength?

4

2 回答 2

1

而不是MaxLength (10),使用StringLength(10).

MaxLength以前的 EF 版本仅用于代码优先迁移中的模式生成,而 StringLength 用于迁移和客户端验证。

我不能告诉你为什么MaxLength它不适合你,EF Core 可能在其当前的开发阶段,只是StringLength暂时考虑。

于 2016-04-22T16:20:30.320 回答
0

我发现了这个问题,我希望它也能帮助其他人。

事实证明,我在模型和 dbcontext 上都有数据注释。它必须在其中之一上。

我已经从 dbcontext、'onModelCreating' 方法中删除了所有数据注释,如 IsRequired() 和 HasMaxLength,并且只在我的模型上使用它们。我已经更新了 InitialSchema 迁移的数据库,所有数据类型现在都是正确的。

于 2016-04-26T09:32:54.640 回答