я хотел бы, чтобы решить эту проблему:Как я могу генерировать NHibernate GROUP BY без ВЫБРАТЬ свойство
SELECT Max(Date)
FROM Table
GROUP BY SubId
(а затем передать его в качестве подзапроса в середине действия, так что я могу получить идентификатор элемента в таблице)
SELECT Id
FROM Table
WHERE Date in
[[[ previous request ]]]
(а затем получить полную таблицу Item с другой таблицы присоединиться)
SELECT *
FROM Table
LEFT JOIN...
WHERE Id in
[[[ previous request ]]]
Я попробовал этот вид reques t:
var subquery = QueryOver.Of<Table>(() => x)
.SelectList(list => list
.SelectMax(() => x.Date)
.SelectGroup(() => x.Sub.Id)
);
var filter = QueryOver.Of<Table>().WithSubquery.
WhereExists(subquery)
.Select(p => p.Id);
var result = Session.QueryOver<Table>().WithSubquery.WhereProperty(p => p.Id).In(filter).Left.JoinQueryOver(p => p.Sub).List();
Но проблема в том, что я не могу получить первый запрос с моей датой только с моей даты. Есть ли лучший способ сделать это, чем такие подзапросы? И есть ли возможность в NHibernate Groupy By Property без ее выбора?
Спасибо!
Это возможно. Проверьте [this] (http://stackoverflow.com/a/20537260/1679310) и/или [это] (http://stackoverflow.com/a/25531842/1679310) –
Спасибо за отзыв. Я попробую еще раз, но на данный момент я нашел решение. – Revv
@Revv: возможное решение здесь: http://stackoverflow.com/a/30915886/750216 –