我有兩個C#類,說Container
和Item
,和一個單向關聯:NHibernate列表鍵列上的SQL索引?
class Container {
[...]
public IList<Item> Items {get;set;}
}
NHibernate的映射如下所示:
<class name="Container">
[...]
<list name="Items" cascade="all-delete-orphan">
<key column="ContainerId"/>
<index column="Position"/>
<one-to-many class="Item"/>
</list>
</class>
結果,NHibernate的(2.0.1)生成Item
表中的ContainerId
列。由於我通常從Container
側導航此連接,因此我想在ContainerId
列上放置SQL索引。 NHibernate似乎沒有爲此提供映射語法,或者至少它對我來說並不明顯。加速這一點的最佳方式是什麼?
我想避免必須在多處傳播,所以我寧願只更改映射文檔。有沒有辦法在NHibernate語法中做到這一點?我應該嵌入自定義SQL命令嗎?如果是這樣,怎麼樣?