我有简单的HQL查询:
var list = OpenSession()
.CreateQuery("SELECT MAX(p.price) as max_price,
COUNT(p.id) as count_all
FROM Order o left join o.Products p")
.List();
我想尽可能简单地输出“max_price”和“count_all”列/投影。
类似的东西:
Console.WriteLine(list[0]["max_price"]);
Console.WriteLine(list[0]["count_all]);
有什么想法吗?
答案 0 :(得分:4)
您可以将其转换为Hashtable
.SetResultTransformer(Transformers.AliasToEntityMap).List<HashTable>()[0]["max_price"];
答案 1 :(得分:1)
不确定这一点,但我认为你需要创建一个类和项目。 这就是我从接近它开始的方式
class UserStatistics{
MaxPrice {get; set;}
CountAll {get; set;}
}
var list = OpenSession()
.CreateQuery("SELECT MAX(p.price) as max_price,
COUNT(p.id) as count_all
FROM Order o left join o.Products p")
.SetResultTransformer(NHibernate.Transform.Transformers.AliasToBean(typeof(UserStatistics)))
.List<UserStatistics>();
然后它应该是
的问题Console.WriteLine(list[0].MaxPrice);
Console.WriteLine(list[0].CountAll);