NHibernate使用SetProjection检索单个集合项

|| 我正在尝试使用Projections从Lead类创建DTO。我的DTO具有例如家庭电话号码,移动电话号码和电子邮件地址,但是“领导班级”具有联系人详细信息的集合。因此,我试图找到一种检索每个联系人详细信息的方法,以便可以在dto上设置属性。我尝试使用子查询和预测,但无济于事。 我正在尝试生成的SQL如下所示:
SELECT 
     A.LeadId, 
     B.ContactId,
     B.Value,
     C.ContactId, 
     C.Value, 
     D.ContactId
FROM Lead A
LEFT JOIN ContactDetail B ON A.LeadId=B.LeadId AND B.ContactType=\'Home Number\'
LEFT JOIN ContactDetail C ON A.LeadId=C.LeadId AND C.ContactType=\'Mobile Number\'
LEFT JOIN ContactDetail D ON A.LeadId=D.LeadId AND D.ContactType=\'Email Address\'
简而言之,我试图根据不同的条件连接到同一张表3次,而且我知道在NHibernate中我不能多次使用CreateAlias联接到同一张表,并且我很想知道使用Criteria API或NHIbernate Linq是否可行。在此先感谢您的帮助。     
已邀请:
        我将从nHibernate加载“常规”线索实例及其联系方式集合。然后,我将使用AutoMapper将其映射到DTO类。 在我看来,这是一种更干净的方法,因为您不必仅为“简单” DTO映射创建特殊的数据访问方法。由于所有内容都是通过“ c尖锐代码”表示的,因此重构更加容易。 链接到AutoMapper     

要回复问题请先登录注册