NhibernateとSchemaexportを使用して、クラスター化されていないプライマリキーを作成します
-
27-09-2019 - |
質問
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
.
所属していません StackOverflow