Nhibernate 如何将带有Group By的HQL转换为QueryOver?
我有一个HQL查询:Nhibernate 如何将带有Group By的HQL转换为QueryOver?,nhibernate,hql,queryover,Nhibernate,Hql,Queryover,我有一个HQL查询: select max(l.Num) from SomeTable l group by l.Type, l.Iteration 如何将其翻译/转换为QueryOver 以下一项: var grouped = session.QueryOver<SomeTable>() .SelectList(l => l .SelectGroup(x => x.Type) .SelectGroup(x => x.Iterati
select max(l.Num) from SomeTable l group by l.Type, l.Iteration
如何将其翻译/转换为QueryOver
以下一项:
var grouped = session.QueryOver<SomeTable>()
.SelectList(l => l
.SelectGroup(x => x.Type)
.SelectGroup(x => x.Iteration)
.SelectMax(x => x.Num));
这不是我所期望的——我不想在Select中使用类型和迭代
我将该查询用作
从c中选择z的子查询,其中z位于(子查询)
尝试使用此语句,我使用了别名和参考标准
SomeTable someTb = null;
var grouped = session.QueryOver<SomeTable>(() => someTb)
.SelectList(l => l.SelectMax(() => someTb.lnum))
.UnderlyingCriteria.SetProjection(
Projections.Group(() => someTb.Type)
,Projections.Group(() => someTb.Iteration))
.List();
SomeTable someTb=null;
var group=session.QueryOver(()=>someTb)
.SelectList(l=>l.SelectMax(()=>someTb.lnum))
.UnderlineCriteria.SetProjection(
Projections.Group(()=>someTb.Type)
,Projections.Group(()=>someTb.Iteration))
.List();
我希望这会有帮助。@Feber-谢谢,但这行不通。UnderlineCriteria仅允许在QueryOver中使用条件查询。此外,您提供的查询:
选择类型,按类型从某个表组进行迭代,迭代
-不是事件选择最大值。如果仍然无法使用queryover/条件,请参阅
SomeTable someTb = null;
var grouped = session.QueryOver<SomeTable>(() => someTb)
.SelectList(l => l.SelectMax(() => someTb.lnum))
.UnderlyingCriteria.SetProjection(
Projections.Group(() => someTb.Type)
,Projections.Group(() => someTb.Iteration))
.List();