遇到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];
}
答案 0 :(得分:1)
问题原因是因为avg在Nhibernate中返回double,而不是float。
我希望这个例外给我一个线索,就是这样。