如何获得NHibernate聚合函数sum()返回小数?

时间:2009-04-07 05:28:05

标签: nhibernate function aggregate

我不能得到sum()来返回小数,它总是返回int64截断小数。我用谷歌搜索了一整天,但仍然找不到真正的工作。我有一个名为ProductPurchase的数据库表

QtyPurchased(int)的 和 UnitPurchasePrice(money)栏目,

使用NHibernate将它们映射到C#POCO对象, 哪里 QtyPurchase是一个int,UnitPurchasePrice是一个十进制属性。

我有以下HQL查询,我想获得某一天的总购买金额:

选择总和(detail.QtyPurchased * detail.UnitPurchasePrice) 来自Domain.Entities.ProductPurchase AS详细信息 其中datediff(“day”,detail.PurchaseDate,:trading_date)= 0

现在出于任何原因,query.UniqueResult总是返回一个Int64整数,截断小数,而生成的SQL显然会返回带小数的正确数字。有人能否解释如何让这个返回小数?

我注意到如果我使用SQL(即CreateSqlQuery),我可以得到小数。这是Nhibernate的错误吗?

谢谢堆

Steven Kuo

1 个答案:

答案 0 :(得分:2)

反转因素的顺序为我做了:(价格*数量)而不是(数量*价格)。

我想必须只检查第一个参数类型,如果此解决方法适合您,请填写JIRA issue