我有下一个自动覆盖:
describe-auto-scaling-instances
这个表中包含以下列:
public class PostOverrides : IAutoMappingOverride<Post>
{
public void Override(AutoMapping<Post> mapping)
{
mapping.HasMany(x => x.Properties).AsMap<string>(
index => index.Column("PropertyKey").Type<string>(),
element => element.Column("PropertyValue").Type<string>().Length(5000)
).Table("PostProperties").Cascade.All();
}
}
我想要的是将PostProperties => int(11)
PropertyKey => VARCHAR(255)
PropertyValue => Text
(索引列)的长度设置为PropertyKey
,以便它转换为191
,但索引列上没有长度属性,因为我这样做元素栏。
所以我不知道怎么做,有什么帮助吗?
我想要这样做的原因是因为我将数据库设置为VARCHAR(191)
,因为InnoDB存储引擎的最大索引长度为767字节。因此,此处允许的最大长度为UTF8mb4
。
因此,在将我的数据库转换为VARCHAR(191)
之后,此表无法创建,因为它正在尝试将该列创建为UTF8mb4
。
此外,如果有方法为这些索引列设置默认长度,那将会很棒。 我为字符串属性设置了默认长度,但不会影响这些索引列,但是这样做会很棒:
VARCHAR(255)