nhibernate命名查询连接单个记录

nhibernate命名查询连接单个记录,nhibernate,join,named-query,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

这就是我所拥有的:

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>
类单位
{
公共职位管理定位;
}
...
...
单位位置在单独的表中,但都由用户组ID相关日期过滤(适当命名查询的参数)。由于其属性的复杂性,它们不会直接映射到表

我想做的是得到一个单元的列表,其中有一个位置,其标志IsManager设置为True

我试图通过返回加入来实现这一点,但没有成功。 我已经试着做了

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


但是NHibernate说它不能将一个数组的System.Object转换为一个数组的Unit

解决我的问题的更好方法是什么?提前谢谢

较可取的方法是:

  • 从单元查询调用位置的参数化查询
  • 解析组合查询的结果集以获取单元和位置属性

  • 你能通过为它编写SQL语句来解决你自己的问题吗?你能通过为它编写SQL语句来解决你自己的问题吗?
    <return alias="position" class="Position">