NHIbernate条件投影查询

时间:2012-06-29 14:55:34

标签: c# nhibernate nhibernate-criteria nhibernate-projections

我有要求,其中我必须使用条件投影查询分别计算现金和信用卡的总数。我的下面的代码不起作用,它给我数据类型不匹配错误。它说真实条件返回十进制和错误返回货币。我不知道为什么会这样,因为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"));

1 个答案:

答案 0 :(得分:3)

您可以明确指定要使用的类型。例如:

Projections.Constant(0.0M, NHibernateUtil.Decimal)

请在此处查看NHibernateUtil课程的文档:http://elliottjorgensen.com/nhibernate-api-ref/NHibernate/NHibernateUtil.html