2

使用 nHibernate QueryOver 我想选择一系列包含聚合表达式的值。所以sql可能是:

SELECT SUM(Total / (TaxRate + 1)) Totals FROM Contract Group By CustomerId

我看不出在哪里(或是否)支持它。我可以将 where 子句编写为表达式,但不能将 select 中的列定义为表达式,这似乎很奇怪。

4

1 回答 1

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组合。

希望有帮助

于 2012-04-13T06:24:35.537 回答