Nhibernate 如何在HQL中指定列别名,以便使用AliasToBeanResultTransformer和Count

Nhibernate 如何在HQL中指定列别名,以便使用AliasToBeanResultTransformer和Count,nhibernate,hql,Nhibernate,Hql,使用NHibernate,我想运行以下查询: return Session.CreateQuery<FooSummary>( @"select FooType, count(*) as Total from Foo group by FooType") .SetResultTransformer(new AliasToBeanResultTransformer(typeof(FooSummary))) .List<FooSummary>

使用NHibernate,我想运行以下查询:

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

然而,HQL似乎不支持列别名。这是正确的吗?如果是,这是否意味着我不能使用别名作为ResultTransformer?

它支持别名:

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

此查询是否有任何错误?如果是,请发布完整的异常。

它不支持别名:

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

此查询是否有任何错误?如果是这样,则发布完整的异常。

直到hql中的nhibernate 2.1.2列出现别名。它适用于非常特定的场景,但在hql中的nhibernate 2.1.2别名禁用之前,它是不可信的。它适用于非常特定的场景,但不可信

嗨,什么是FooType?请发布FooType的映射。嗨,什么是FooType?请发布FooType的映射。此别名不会发送到DB@Jaguar:它是透明的。别名的用途是在客户端映射内容。为什么您会关心发送到DB的别名?我不应该关心,但是在我的有限测试“Total”中,您在hql中定义的列别名不会到达结果转换器。我曾经获取nhibernate生成的别名,因此结果无法映射到提供的类型property@Jaguar:你有关于这个bug的概念证明吗?我测试了一些来自映射实体的查询,以生成某种dto,但是没有足够小的东西可以作为bug报告。当我有时间的时候,我会重新访问它。这个别名不会发送到DB@Jaguar:它是透明的。别名的用途是在客户端映射内容。为什么您会关心发送到DB的别名?我不应该关心,但是在我的有限测试“Total”中,您在hql中定义的列别名不会到达结果转换器。我曾经获取nhibernate生成的别名,因此结果无法映射到提供的类型property@Jaguar:你有关于这个bug的概念证明吗?我测试了一些来自映射实体的查询,以生成某种dto,但是没有足够小的东西可以作为bug报告。当我有时间的时候,我会再去看看