Создание не разбитых первичных ключей с использованием Nibernate и SchemaExport

StackOverflow https://stackoverflow.com/questions/3457547

Вопрос

Мы используем SchemaExport через ActiveReCord. По умолчанию он генерирует табу, как это:

create table List (
  Id      UNIQUEIDENTIFIER   not null,
  Name    NVARCHAR(255)   null,
  OwnerId UNIQUEIDENTIFIER   null,
    primary key ( Id ))

SQL Server затем по умолчанию используется для добавления кластерного индекса для первичного ключа. Но я хочу, чтобы это было нескревестно. Я хочу добавить кластерный индекс для Permanid, так как это будет гораздо более эффективно.

Теперь я мог бы запустить скрипт, чтобы создать не кластерный индекс. Это будет включать в себя снижение оригинального первичного ключа ограничения и добавления не кластеризованного. Тем не менее, Schemaexport уже полезно создал все свои ограничения внешних ключей, которые останавливают меня сбросить первичный ключ.

Поэтому мне нужно бросить иностранные ключи, которые имеют бесполезное имя, такое как fk4bad9607d2 wedddb5, то воссоздайте их (могу ли я сделать это снова автоматически?). Это все немного головной боли.

Было бы намного проще, если бы я мог просто попасть туда-то и добавить не разбитый Спецификация к первичному ключу, как оно создает его. Есть ли актуальный бит экспорта инструмента, который я могу переопределить, чтобы сделать это?

Спасибо

Это было полезно?

Решение

Я верю, что ваш лучший вариант использует SchemaExport, чтобы создать скрипт и изменять его вручную.

В противном случае вам нужно переопределить Dialect.GetAddPrimaryKeyConstraintString.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top