2012-04-23 17 views
0

、あなたはそうのようなインデックス指定されたフィールドをすることができますNHibernate 3.2のコードによるマッピングを使用して複数のフィールドにインデックスを作成するにはどうすればよいですか?コードでのNHibernate 3.2マッピングで

mapper.Class<Customer>(map => 
{ 
    map.Property(x => x.Address, m => m.Index("AddressIndex")); 
}); 

は、私は、次のフィールドをカバーするインデックスを作成したいと思います:

  • 住所

私は 'マップ' OBにはIndexメソッドを参照してくださいませんまた、追加の列を指定できるプロパティ固有のIndexメソッドでオーバーロードが発生することもありません。どうすればこれを達成できますか?

mapper.Class<Customer>(map => 
{ 
    map.Property(x => x.Address, m => m.Index("AddressIndex")); 
    map.Property(x => x.FirstName, m => m.Index("AddressIndex")); 
    map.Property(x => x.LastName, m => m.Index("AddressIndex")); 
}); 

インデックスは、すべての3つの列を覆って作成されますが、ないために、私は指定された:

編集は、私は次の操作を行う場合ことがわかりました。インデックスに列の順序を指定する方法はありますか?

+0

注文には問題がありますか?私はいつも注文が重要な列でなく、インデックスのリーフページに格納されているので、注文は重要でないと信じられました。 – Rippo

答えて

0

注文が問題である場合、1つの選択肢は、スキーマが生成された後にスクリプトを作成して実行することです。

私はcomposite indexesについてこれを読んで覚えています、それは秩序かもしれないかのようです。NOT問題!

+0

順序は間違いありません。最も選択的な列を最初に置くことによって(SQLはインデックス内の最初の列の統計のみを生成します)、SQL Serverは最も迷惑な部分を除外できます。これが他のDBプラットフォームに当てはまるかどうかはわかりません。私はまだbtwを考え出していない。 – Chris

+0

次に、スキーマが生成された後にスクリプトを実行する必要があります。 – Rippo

関連する問題