Свободное отображение NHibernate для создания кластеризованного индекса с помощью компонента HasMany - PullRequest
1 голос
/ 11 августа 2011

У меня есть переопределение отображения 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);

            });
    }
}

1 Ответ

6 голосов
/ 11 августа 2011

По умолчанию PK создается как кластеризованный индекс. Для кластерного индекса есть больше работы, см. links в комментарии Стефана Штайнеггера. Но есть способ определить индекс.

mapping.HasMany<ItemDetailUDF>(x => x.UserDefinedFields)
    .Table("ItemUDF")
    .KeyColumns.Add("ItemDetailFk", c => c.Index("myindex"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...