我无法让 sum() 返回小数,它总是返回 int64 截断小数。我已经用谷歌搜索了一整天,但仍然找不到真正的工作。我有一个名为 ProductPurchase 的数据库表
QtyPurchased(int) 和 UnitPurchasePrice(money) 列,
这些使用 NHibernate 映射到 C# POCO 对象,其中 QtyPurchase 是一个 int 并且 UnitPurchasePrice 是一个小数属性。
我有以下 HQL 查询,我想在其中获取给定日期的总购买金额:
select sum(detail.QtyPurchased * detail.UnitPurchasePrice) from Domain.Entities.ProductPurchase AS detail where datediff("day", detail.PurchaseDate, :trading_date) = 0
现在无论出于什么原因,query.UniqueResult 总是返回一个 Int64 整数,截断小数,而生成的 SQL 显然返回正确的数字,并带有小数。有人可以解释一下如何让它返回十进制吗?
我注意到如果我使用 SQL(即 CreateSqlQuery),我可以得到小数点。这是 Nhibernate 的错误吗?
非常感谢
史蒂文·郭