Я смог сделать этот запрос в ActiveRecord, используя HqlBasedQuery
, поэтому я публикую здесь ответ, чтобы помочь другим в той же ситуации, что и я.
HqlBasedQuery query = new HqlBasedQuery(typeof(Part),
@"
SELECT
par.Id,
par.Name,
par.Active,
(SELECT count(*) - count(trans) FROM Language)
FROM Part par
LEFT JOIN par.PartsTranslations trans
GROUP BY par.Id, par.Name, par.Active, trans.Part
");
query.SetQueryRange(startId, currentPageSize);
var results = from object[] summary in
(ArrayList)ActiveRecordMediator.ExecuteQuery(query)
select new PartProjection
{
Id = (int)summary[0],
Name = (string)summary[1],
Active = (bool)summary[2],
TransMissing = (long)summary[3]
};
У меня также есть нумерация страниц по этому запросу, и это также дает мне строгое типизированные PartProjection
объекты. Этот класс не должен иметь какой-либо параметр ActiveRecord.