Этот оператор HQL при выполнении дает следующий результат:
select t, count(s) from Submission s right join s.Topics as t GROUP BY t.Id
result[0]
[0] topic_id, topic_name, ...
[1] 10
result[1]
[0] topic_id, topic_name, ...
[1] 12
.
result[n]
[0] topic_id, topic_name, ...
[1] 19
Этот API-интерфейс DetachedCriteria дает почти аналогичный результат, но без загрузки темы
ProjectionList PrjList = Projections.ProjectionList();
PrjList.Add(Projections.GroupProperty("Topics"), "t");
PrjList.Add(Projections.Count("Id"));
DetachedCriteria Filter = DetachedCriteria.For<Submission>();
Filter.CreateCriteria("Topics", "t", JoinType.RightOuterJoin);
Filter.SetProjection(PrjList);
result[0]
[0] null
[1] 10
result[1]
[0] null
[1] 12
.
result[n]
[0] null
[1] 19
По какой-то причине nhibernate отказывается создавать объекты темы для набора результатов, но делает это для запроса HQL. Почему?