nhibernate命名查询连接单个记录

时间:2011-11-11 06:55:30

标签: nhibernate join named-query

这就是我所拥有的:

class Unit
{
   public Position ManagerPosition;
}

<sql-query name="GetUnits" read-only="true">
    <query-param name="UserGroupId" type="int"/>
    <query-param name="RelevantToDate" type="datetime"/>
    <query-param name="ParentUnitId" type="int"/>

    <return class="Unit" />
...
</sql-query>

<sql-query name="GetPositions" read-only="true">
    <query-param name="UserGroupId" type="int"/>
    <query-param name="RelevantToDate" type="datetime"/>
    <query-param name="UnitId" type="int"/>
    <query-param name="ManagersOnly" type="bool"/>

    <return class="Position" />
...
</sql-query>

单位排名位于不同的表格中,但均由 UserGroupId RelevantDate 过滤(参数为适当的命名查询)。由于其属性的复杂性,它们不会直接映射到表。

我要做的是获取一个单位的列表,其中包含一个位置,其标志 IsManager 设置为

我试图通过return-join来做到这一点 - 没有成功。 我试过这样做

<return class="Unit">
  <return-property name="ManagerialPosition" column="position"/>
</return>

<return alias="position" class="Position">

但NHibernate表示它无法将System.Object数组强制转换为Unit数组。

有什么方法可以解决我的问题?提前谢谢!

更好的方法是:

  1. 从单位查询调用位置的参数化查询。
  2. 解析组合查询的结果集以获取“单位和位置”属性

0 个答案:

没有答案