我有要求,其中我必须使用条件投影查询分别计算现金和信用卡的总数。我的以下代码不起作用,它给了我数据类型不匹配错误。它说真条件返回十进制,假返回货币。我不确定为什么它会这样做,因为 0.0M 确实代表十进制。任何人都可以帮我查询吗?
RefundTemplate.Criteria.SetProjection(
Projections.ProjectionList()
.Add(Projections.Sum(Projections.Conditional
(Restrictions.Eq("PaymentType", "CK"),
Projections.Property("Gross"), Projections.Constant(0.0M))), "CashRefund")
.Add(Projections.Sum(Projections.Conditional
(Restrictions.Eq("PaymentType", "CC"),
Projections.Property("Gross"), Projections.Constant(0.0M))), "CreditRefund"));
您可以显式指定要使用的类型。例如:
Projections.Constant(0.0M, NHibernateUtil.Decimal)
请参阅此处的 NHibernateUtil
类的文档:http://elliottjorgensen.com/nhibernate-api-ref/NHibernate/NHibernateUtil.html