Nhibernate:返回在同一个表上连接的结果

时间:2014-03-03 14:29:20

标签: c# nhibernate nhibernate-mapping

我认为我认为这是一个简单的查询,但我不知道如何使用nhibernate 2.X来解决这个问题。

假设我有一个连接在同一个表上的简单SQL查询,我该如何返回一个对象列表?

select   primary_details.*, 
         secondary_details.*, 
from     details primary_details 
         JOIN details secondary_details 
         ON primary_details.ID = secondary_details.ID;

现在显然还有其他标准可以应用,所以我没有得到相同数据重复的结果集,但我已经简化了我的问题。

我的详细信息如果我只是从详细信息中选择,那么域和映射工作正常,但我需要的是一个结果集,其中数据已加入,因此我可以从primary_details中为secondary_details绘制一个列。

任何想法都将不胜感激。即使它解决方案是以某种方式处理nhibernate之外的事情。

Dumbed down Mapping File:

<class name="details" table="details" lazy="true" schema-       
action="none">
<id name="ID">
  <column name="ID" sql-type="varchar(32)" />
</id>
<property name="Name">
  <column name="Name" not-null="false" />
</property>
<property name="Value">
  <column name="laboratory_id" not-null="false" />
</property>
</class>

干杯

1 个答案:

答案 0 :(得分:0)

试试这个:

var session.CreateSQLQuery("select {pd.*}, {sd.*}, from details pd JOIN details sd ON pd.ID = sd.ID").AddEntity("sd", typeof(details)).AddEntity("pd", typeof(details)).List<details>();