我有两个C#类,比如说Container
和Item
,以及一个单向关联:
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)在ContainerId
表中生成Item
列。由于我通常从Container
侧导航此连接,因此我想在ContainerId
列上放置一个SQL索引。 NHibernate似乎没有为此提供映射语法,或者至少对我来说并不明显。加速这种加速的最佳方法是什么?
我想避免将其传播到多个地方,所以我更愿意只更改映射文档。有没有办法在NHibernate语法中执行此操作?我应该嵌入自定义SQL命令吗?如果是这样,怎么样?
答案 0 :(得分:2)
查看<database-object>
映射;它将允许您创建任意索引,触发器等,作为模式创建过程的一部分。用法在this article中描述。
答案 1 :(得分:0)
我不知道是否以及何时更改但可以使用
完成<index>
<column name="Position" index="Positionindex" />
</index>