HQL中的avg聚合函数导致NHibernate出现问题,我的查询有什么问题?

时间:2010-08-26 04:41:59

标签: c# nhibernate hql

遇到HQL查询问题。如果我从它中删除avg(..)它将返回所有空权重,所以问题在于avg函数。在Nhibernate文档中似乎很清楚我可以像这样在select项上执行聚合函数。我的问题与query.ToList有关,不喜欢返回一个列表吗?我刚刚收到“无法执行查询[SQL:SQL not available]消息。

 public List<T> HQLQuery<T>(string HQL) //in UnitOfWork
    {
        var query = session.CreateQuery(HQL);
        return query.List<T>().ToList<T>();


    }

   public static float estimateTruckEmptyWeight(int vehicleID)
    {
        UnitOfWork uow = new UnitOfWork();
        List<float> results = uow.HQLQuery<float>("select avg(ev.EmptyWeight) from FieldSystemCore.Domain.EmptyVehicle ev where ev.Vehicle.ID = '" + vehicleID + "'");
        return results[0];

    }

1 个答案:

答案 0 :(得分:1)

问题原因是因为avg在Nhibernate中返回double,而不是float。

我希望这个例外给我一个线索,就是这样。