2011-02-08 18 views
1

使用NHibernate,我想运行下面的查询:我怎么可以指定HQL列别名,所以我可以用AliasToBeanResultTransformer以计数

return Session.CreateQuery<FooSummary>(
    @"select FooType, count(*) as Total from Foo 
     group by FooType") 
    .SetResultTransformer(new AliasToBeanResultTransformer(typeof(FooSummary))) 
    .List<FooSummary>(); 

的类新有:

class FooSummary { string FooType, int Total }; 
class Foo { string FooType }; 

然而,似乎HQL不支持列别名。它是否正确?如果是这样,这是否意味着我不能使用AliasToBeanResultTransformer?

+0

嗨,什么是FooType?请发布FooType的映射。 – Rippo 2011-02-08 07:48:59

回答

2

确实支持别名:

select FooType FooType, 
     count(*) Total 
from Foo 
group by FooType 

您是否收到任何错误与此查询?如果是这样,请发布完整的例外。

+1

这个别名不会发送到DB – Jaguar 2011-03-01 09:19:44

2

直到nhibernate 2.1.2 hql中的别名是borked。它适用于非常特定的场景,但它不值得信赖