使用nHibernate QueryOver我想选择一系列包含聚合表达式的值。所以sql可能是:
SELECT SUM(Total / (TaxRate + 1)) Totals FROM Contract Group By CustomerId
我看不到支持的位置(或者是否支持)。看起来奇怪的是我可以将where子句写为表达式,但不能在select as表达式中定义列。
答案 0 :(得分:1)
由于我没有你的代码,我无法验证这些,但你可以试试这个:
var dividePropertyProjection = Projections.SqlProjection(
"SUM(Total/TaxRate+1) as Totals", new string[] {"Totals"}, new IType[] {NHibernateUtil.Decimal}); //Assuming the sum is decimal, you can change it
var list= Session.QueryOver<Contract>().Select(Projections.Group<Contract>(x=>x.CustomerId),dividePropertyProjection).List();
不确定会返回哪个列表,我猜它应该返回CustomerId, Sum
组合。
希望有所帮助