MySQL EF Core所有字符串字段都创建为文本列

时间:2017-08-11 05:47:20

标签: mysql entity-framework asp.net-core entity-framework-core

使用Entity Framework Core for MySQL生成我的表时,所有字符串属性都在MySQL中作为文本列创建

我正在使用:

<PackageReference Include="MySql.Data" Version="8.0.8-*" />
<PackageReference Include="MySql.Data.EntityFrameworkCore" Version="8.0.8-*" />

我正在尝试在.net中使用内置的身份验证,当我生成表时,我收到错误:

BLOB/TEXT column 'NormalizedEmail' used in key specification without a key length

我可以通过添加:

来解决这个问题
builder.Entity<IdentityRole>().Property(i => i.NormalizedName)
                                  .HasColumnType("varchar(256)");

但我不想为身份模型中的每一列执行此操作,也不希望我添加的列像FirstName一样存储为文本列。

这是EF Core for MySQL中的错误还是我的配置有误?

1 个答案:

答案 0 :(得分:0)

感谢@Tseng推荐使用Pomelo。这是一个简单的开关,它解决了我所有的问题。