【问题标题】:avg aggregate function in HQL causing trouble in NHibernate, what is wrong with my query?HQL 中的 avg 聚合函数导致 NHibernate 出现问题,我的查询有什么问题?
【发布时间】:2010-08-26 04:41:59
【问题描述】:

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

 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];

    }

【问题讨论】:

    标签: c# nhibernate hql


    【解决方案1】:

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

    我希望这个例外给了我一个线索,表明情况确实如此。

    【讨论】:

    • 那是 DB 提供者,不是 NH
    • 不确定,数据库中的所有内容都记录在浮点数中。文档特别提到 avg(..) 总是返回 double。
    猜你喜欢
    • 1970-01-01
    • 2016-06-16
    • 2016-09-27
    • 2014-07-18
    • 1970-01-01
    • 2016-06-27
    • 2014-07-11
    相关资源
    最近更新 更多