Nhibernate设置索引列的长度

时间:2016-12-03 00:38:47

标签: c# asp.net-mvc nhibernate fluent-nhibernate

我有下一个自动覆盖:

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)

0 个答案:

没有答案