Having a query like the following:
var subquery = SessionFactory.GetCurrentSession()
.QueryOver<SomeEntity>()
.Where(_ => _.SomeOtherEntity.Id == someId)
.SelectList(list => list
.SelectGroup(x => x.SomeGroupByProperty)
.SelectMax(x => x.MaxPerGroupProperty))
.List<dynamic>();
The generated sql is selecting both SomeGroupByProperty
and maximum of MaxPerGroupProperty
. Is it possible to get it to group on SomeGroupByProperty
but only select maximum of MaxPerGroupProperty
? This is for using the subquery result with a contains in parent query.
It's an open issue in NHibernate jira (criteria query): https://nhibernate.jira.com/browse/NH-1426
You can do it like this though
Not quite as pretty as using the entity properties, but it does work.