我有一个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);
});
}
}
答案 0 :(得分:6)
默认情况下,PK创建为聚簇索引。对于聚集索引,还有更多工作,请参阅Stefan Steinegger评论中的链接。但是有一种方法可以定义索引。
mapping.HasMany<ItemDetailUDF>(x => x.UserDefinedFields)
.Table("ItemUDF")
.KeyColumns.Add("ItemDetailFk", c => c.Index("myindex"))