Fluent NHibernate映射使用HasMany Component创建聚簇索引

Ski*_*ris 1 nhibernate fluent-nhibernate

我有一个Fluent NHibernate映射覆盖,我用它来创建一个HasMany组件.有没有办法让NH在组件表中的FK列上创建聚簇索引?在下面的示例中,我想要ItemDetailFk列上的聚簇索引.谢谢!

public class ItemDetailMap : IAutoMappingOverride<ItemDetail>
{
    public void Override(AutoMapping<ItemDetail> mapping)
    {
        mapping.HasMany<ItemDetailUDF>(x => x.UserDefinedFields)
            .Table("ItemUDF")
            .KeyColumn("ItemDetailFk")
            .Not.LazyLoad()
            .Fetch.Subselect()
            .Component(udfObj =>
            {
                udfObj.Map(x => x.UDFSequence);
                udfObj.Map(x => x.String0);
                udfObj.Map(x => x.String1);
                udfObj.Map(x => x.String2);

            });
    }
}
Run Code Online (Sandbox Code Playgroud)

Fir*_*iro 6

默认情况下,PK创建为聚簇索引.对于聚集索引,还有更多工作,请参阅Stefan Steinegger评论中的链接.但是有一种方法可以定义索引.

mapping.HasMany<ItemDetailUDF>(x => x.UserDefinedFields)
    .Table("ItemUDF")
    .KeyColumns.Add("ItemDetailFk", c => c.Index("myindex"))
Run Code Online (Sandbox Code Playgroud)