我试图使用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值小于零的所有记录。但不知何故,代码无法正常工作。它不会抛出任何错误,但它根本无法工作。
答案 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));