使用 nHibernate QueryOver 我想选择一系列包含聚合表达式的值。所以sql可能是:
SELECT SUM(Total / (TaxRate + 1)) Totals FROM Contract Group By CustomerId
我看不出在哪里(或是否)支持它。我可以将 where 子句编写为表达式,但不能将 select 中的列定义为表达式,这似乎很奇怪。
使用 nHibernate QueryOver 我想选择一系列包含聚合表达式的值。所以sql可能是:
SELECT SUM(Total / (TaxRate + 1)) Totals FROM Contract Group By CustomerId
我看不出在哪里(或是否)支持它。我可以将 where 子句编写为表达式,但不能将 select 中的列定义为表达式,这似乎很奇怪。
由于我没有您的代码,因此无法验证任何内容,但您可以尝试以下操作:
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
组合。
希望有帮助