Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# HQL中的avg聚合函数导致NHibernate出现问题,我的查询有什么问题?_C#_Nhibernate_Hql - Fatal编程技术网

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

C# HQL中的avg聚合函数导致NHibernate出现问题,我的查询有什么问题?,c#,nhibernate,hql,C#,Nhibernate,Hql,HQL查询有问题。如果我从中删除avg(..),它将返回所有空权重,因此avg函数有问题。在Nhibernate文档中似乎很清楚,我可以像这样对select项执行聚合函数。我的问题是否与query.ToList有关?我不喜欢返回一个事物的列表?我刚刚收到“无法执行查询[SQL:SQL不可用]消息 public List<T> HQLQuery<T>(string HQL) //in UnitOfWork { var query = session

HQL查询有问题。如果我从中删除avg(..),它将返回所有空权重,因此avg函数有问题。在Nhibernate文档中似乎很清楚,我可以像这样对select项执行聚合函数。我的问题是否与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];

    }
公共列表HQLQuery(字符串HQL)//在UnitOfWork中 { var query=session.CreateQuery(HQL); 返回query.List().ToList(); } 公共静态浮动估计卡车重量(内部车辆ID) { UnitOfWork uow=新UnitOfWork(); 列表结果=uow.HQLQuery(“从FieldSystemCore.Domain.EmptyVehicle ev中选择平均值(ev.EmptyWeight),其中ev.Vehicle.ID='“+vehicleID+””; 返回结果[0]; }
问题原来是因为avg返回Nhibernate中的double,而不是float


我希望异常能给我一个这样的线索。

问题原来是因为avg返回的是Nhibernate中的双精度,而不是float


我希望异常能给我一个线索,说明情况是这样的。

这是数据库提供程序,不确定,数据库中的所有内容都记录在浮点数中。文档特别提到了avg(…)始终返回double。这是数据库提供程序,不确定,数据库中的所有内容都记录在float中。文档特别指出,avg(..)始终返回double。