2

多分コンベンションで、それは可能ですか?私は何百ものテーブルと無数のリレーションシップを持っています。すべての外部キーにインデックスを付けたいのですが、それをコーディングする必要はありません。

アップデート

@Vadimの助けを借りて、私はこれを行うことができました:

var fkIndexConvention = ConventionBuilder.Reference.Always(x =>
    x.Index(string.Format("ix{0}_{1}_{2}", x.Class.Name, x.Property.Name,
    Guid.NewGuid().ToString().Replace("-", string.Empty))));

...そしてそれを流暢な構成に追加します:

var fluent = Fluently.Configure(config)
    .Mappings(m => m.FluentMappings.Conventions.Add(fkIndexConvention));

...そして、世界はより良い場所になりました。

4

1 に答える 1

2

hbm2ddl ツールと SchemaExport の使用について話していると思います。

あなたがする必要があるのは、参照規則を設定することだけです。は外部キーを非表示にするためIManyToOneInstance、インスタンスを にキャストできるはずですIManyToOneInspector

ConventionBuilder.Reference.Always(x => x.Index(((IManyToOneInspector)x).ForeignKey + "Index"));
于 2013-01-25T23:26:38.603 に答える