这个HQL语句被执行后,会产生如下结果:
这个DetachedCriteria API可以产生几乎相似的结果,但不会加载主题。
由于某种原因,nhibernate拒绝为结果集创建主题对象,但它会为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
这个DetachedCriteria API可以产生几乎相似的结果,但不会加载主题。
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查询创建主题对象。这是为什么?