Как указать многостолбцовый индекс с помощью Fluent NHibernate - PullRequest
6 голосов
/ 07 ноября 2010

Цель состоит в том, чтобы моя полная конфигурация базы данных и генерация схемы обрабатывались беглым nhibernate.

Есть ли способ указать многостолбцовый индекс с помощью Fluent nhibernate?

Я понимаю, что вы можете указать индекс для одного свойства / столбца

примерно так:

mapping.Map(x => x.ItemDt).Index("IX_DataTransferLog_ItemDt");

как мне указать несколько столбцов?

Если это невозможно, есть ли способ добавить необработанные операторы SQL в конфигурацию, которая будет выполняться после того, как схема будетсоздано / обновлено?

1 Ответ

13 голосов
/ 08 ноября 2010

В XML-отображениях это может быть достигнуто путем добавления индекса с одинаковым именем ко всем свойствам, которые должны быть в индексе:

<property name="Name" index="MyIndex" />
<property name="RunTimeInMinutes" index="MyIndex" />

К сожалению, в настоящее время у меня нет проекта, использующего Fluent NHibernate, которыйЯ мог бы проверить это, но я думаю, что это работает в Fluent NHibernate таким же образом:

mapping.Map(x => x.Name).Index("MyIndex");
mapping.Map(x => x.RunTimeInMinutes).Index("MyIndex");

Если это не работает, вы можете добавить необработанный SQL, необходимый для создания индекса, в database-object вотображение.NHibernate выполнит SQL, когда база данных будет создана с использованием SchemaExport.Я не знаю, существует ли версия Fluent для сопоставления объектов базы данных, но вы можете сопоставить database-object с использованием XML и добавить файл сопоставления в конфигурацию Fluent NHibernate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...