NHibernate标准子查询具有多个连接

时间:2015-01-29 16:55:32

标签: c# hibernate join subquery criteria

任何人都知道如何对以下案例进行条件查询?

我有两个班级:

classA
{
    int Id;
    string name;
    string surname;
    string myproperty;
    classB classbId;
}

classB
{
    int Id;
    string property1value;
    string property2value;
}

有SQL Query:

SELECT a0.name,
a0.surname,
(SELECT a2.myproperty from classB b1
inner join classB b2 on b1.property1value= b2.property2value
inner join classA a1 on b1.Id = a1.classbId
inner join classA a2 on b2.Id = a2.classbId
where a1.Id = 7) as subSelect

FROM classA a0
where a0.Id = 7

有一个项目被定义为:

ProjectionList proj = Projections.ProjectionList();

我需要的是创造这样的东西:

DetachedCriteria subqueryCriteria = DetachedCriteria.For(typeof(???))
.SetProjection(Projections.Property("a2.myproperty"))
?????
?????

然后将其添加到项目中:

proj.Add(Projections.SubQuery(subqueryCriteria), "MyProperty");

所以我可以将它添加到我现在的主查询中:

.CreateCriteria<'classA>("a0")
.CreateAlias("classB", "b0", JoinType.InnerJoin)
.SetProjection(proj)

属性名称和姓氏包括在:

proj.Add(Projections.Property(name/surname));

但是没关系,问题是:如何翻译subSelect以便它可以工作? 感谢您的帮助。

0 个答案:

没有答案