0
当生成使用实体框架的核心MySQL的所有字符串属性的我的表被创建为文本列在MySQLMySQL的EF核心的所有字符串字段创建文本列
我使用:
<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中的一个错误还是我有一些配置错误?
这就是它应该的样子。只有当你有限制(MaxLength/.HasMaxLength)时,才可以选择var char。对于所有其他情况,您必须自己重写/指定 – Tseng
查看迁移快照中生成的内容,它将以最大长度指定,但仍将创建为文本字段b.Property(“NormalizedUserName”)。HasMaxLength (256);' –
JoAMoS
我尝试了MySql.Data和MySql.Data.EntityFrameworkCore的版本'7.0.7- *',并且生成为文本列的列生成为varchar(255)。我会坚持使用7.0.7,直到我得到更好的答案。 – JoAMoS