代码之家  ›  专栏  ›  技术社区  ›  Malte Clasen

NHibernate列表键列上的SQL索引?

  •  2
  • Malte Clasen  · 技术社区  · 15 年前

    我有两个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 列中 项目 表。因为我通常从 集装箱 另一方面,我想在 集装箱船 列。NHibernate似乎没有为此提供映射语法,或者至少对我来说并不明显。最好的加速方法是什么?

    我想避免把它分散在多个地方,所以我更喜欢只更改映射文档。在nhibernate语法中有没有一种方法可以做到这一点?我应该嵌入自定义SQL命令吗?如果是这样,怎么办?

    2 回复  |  直到 12 年前
        1
  •  2
  •   DanP    14 年前

    看看 <database-object> 映射;它将允许您创建任意索引、触发器等,作为模式创建过程的一部分。使用说明见 this article .

        2
  •  0
  •   Firo    12 年前

    我不知道这是否和何时发生了变化,但可以用

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