NHibernate列表键列上的SQL索引?

时间:2009-09-24 18:59:34

标签: nhibernate nhibernate-mapping

我有两个C#类,比如说ContainerItem,以及一个单向关联:

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命令吗?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:2)

查看<database-object>映射;它将允许您创建任意索引,触发器等,作为模式创建过程的一部分。用法在this article中描述。

答案 1 :(得分:0)

我不知道是否以及何时更改但可以使用

完成
<index>
    <column name="Position" index="Positionindex" />
</index>