我认为我认为这是一个简单的查询,但我不知道如何使用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>
干杯
答案 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>();