今天在NHibernate中使用聚合函数时,遇到一些问题,在网上搜索原因,再结合实践,总结出以下两点:
1、必须给实体加上别名,如果不加别名聚合函数不会生效。
此时 select MAX(Carte.HappenTime) from Carte 相当于: from Carte
2、查询出来的字段不能加别名。如果写成这样,select MAX(tb.HappenTime) as HappenTime from Carte as tb会报异常。
正确的写法为:
List oldList = DataAccessor.Query("select MAX(tb.HappenTime) from Carte as tb");