使用nhibernate投影查询仅过滤负值

时间:2012-06-19 19:43:44

标签: nhibernate nhibernate-criteria nhibernate-projections

我试图使用nhibernate投影查询仅过滤负值。以下是我的代码

SearchTemplate RefundTemplate = new SearchTemplate();
            RefundTemplate.Criteria = DetachedCriteria.For(typeof(AirBilling), "Ab");
            RefundTemplate.Criteria.Add(NHibernate.Criterion.Expression.Eq("PaymentType", "CK"));
            RefundTemplate.Criteria.Add(NHibernate.Criterion.Restrictions.Lt("Gross",0));

基本上我想要从AirBilling表中获取具有PaymentType CK且Gross值小于零的所有记录。但不知何故,代码无法正常工作。它不会抛出任何错误,但它根本无法工作。

1 个答案:

答案 0 :(得分:2)

可能是因为您为实体提供了别名(“Ab”),因此当您引用属性时,您需要使用别名作为前缀,例如:Expression.Eq(“Ab.PaymentType”,“CK” )

试试这个:

SearchTemplate RefundTemplate = new SearchTemplate();
RefundTemplate.Criteria = DetachedCriteria.For(typeof(AirBilling), "Ab");
RefundTemplate.Criteria.Add(NHibernate.Criterion.Expression.Eq("Ab.PaymentType", "CK"));
RefundTemplate.Criteria.Add(NHibernate.Criterion.Restrictions.Lt("Ab.Gross",0));