有没有办法在地图上动态指定“where”?

时间:2011-11-04 11:20:55

标签: c# nhibernate nhibernate-mapping

让我们考虑以下简化映射:

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"  assembly="xxx" namespace="yyy">
  <class name="Customer" table="Customers">
    <id name="Id" column="customerID" type="Int64">
      <generator class="native"/>
    </id>

    <!-- LOOK AT THE WHERE BELOW .-->
    <map where="codeType='BO'" name="Conversions" table="CustomersCodes" >
      <key column="customerID"></key>
      <index   column="codeType" type="AnsiString"/>
      <element column="code" type="AnsiString"/>
    </map>

  </class>
</hibernate-mapping>

我想在代码中用dinamycally指定where(在示例中的映射中),是否可能?

作为一种可行的替代方案,是否可以使用QueryOver或LinqToNH获取地图的一个键?我确实试过链接到NH,但它抱怨地图不包含实体(是的,因为它是元素的地图,在NH中完全有效,并且在许多情况下有助于优化速度)

1 个答案:

答案 0 :(得分:1)

也许NHibernate Filters可以帮助你Contextual data using NHibernate filters