NhibernateとSchemaexportを使用して、クラスター化されていないプライマリキーを作成します

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

質問

ActivereCordを介してSchemaexportを使用しています。デフォルトでは、次のようなテーブルを生成します。

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

SQL Serverは、プライマリキーにクラスター化されたインデックスを追加することにデフォルトです。しかし、私はこれを非クラスター化したいと思っています。これははるかに効率的であるため、Clustered IndexをOwnerIDに追加したいと思います。

これで、その後スクリプトを実行して、クラスター化されていないインデックスを作成することができました。これには、元の主要なキーの制約を削除し、非クラスター化された制約を追加することが含まれます。ただし、Schemaexportは、主要なキーを削除するのを止める外部キーの制約をすべて作成しています。

したがって、FK4BAD9607D2BEDDB5のような役に立たない名前を持つ外国の鍵をドロップしてから、それらを再現する必要があります(これを再度自動的に実行できますか?)。それはすべて少し頭痛の種です。

どういうわけかそこに着いて追加できれば、それはずっと簡単です クラスタリングされていません それが生成するときに主キーに仕様を仕様します。これを行うためにオーバーライドできるエクスポートツールに関連するビットはありますか?

ありがとう

役に立ちましたか?

解決

あなたの最良の選択肢は、Schemaexportを使用してスクリプトを作成し、手動で変更することだと思います。

それ以外の場合は、オーバーライドする必要があります Dialect.GetAddPrimaryKeyConstraintString.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top