【发布时间】:2012-09-11 15:02:58
【问题描述】:
尝试在 NHibernate QueryOver 中实现以下查询。
SQL
SELECT
SUM(GrossChargeAmount)
FROM Charges
INNER JOIN Account on Account.Chargekey = Charges.Chargekey
SELECT
SUM(GrossChargeAmount),
Account.AccountHolder
FROM Charges
INNER JOIN Account on Account.Chargekey = Charges.Chargekey
GROUP BY
Account.AccountHolder
NHibernate:
var accountAlias = null;
var baseQuery = session.QueryOver<Charges>()
.JoinAlias(c => c.Account, () => accountAlias)
.SelectList(s => s.SelectSum(c => c.GrossChargeAmount))
我有构建 baseQuery 的代码。然后,根据方法参数,我希望将 GROUP BY 附加到 baseQuery 中,例如:
baseQuery.SelectList(s => s.GroupBy(() => accountAlias.AccountHolder)
然而,这最终会重置我的 baseQuery 上的投影,并基本上“覆盖”初始投影( .SelectList(s => s.SelectSum(c => c.GrossChargeAmount)) )。在这个阶段,查询的执行除了 GROUP BY 之外没有任何 SUM()。
TLDR;如何向 Nhibernate QueryOver 实例添加投影?
最后,但并非最不重要的是,我在 NHibernate 2.0.50727 上运行
【问题讨论】:
-
没有 NHibernate 2.0.50727 这样的东西
标签: c# nhibernate orm queryover