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

使用nhibernate投影查询仅过滤负值,nhibernate,nhibernate-criteria,nhibernate-projections,Nhibernate,Nhibernate Criteria,Nhibernate Projections,我尝试使用nhibernate投影查询仅过滤负值。下面是我的代码 SearchTemplate RefundTemplate = new SearchTemplate(); RefundTemplate.Criteria = DetachedCriteria.For(typeof(AirBilling), "Ab"); RefundTemplate.Criteria.Add(NHibernate.Criterion.Expression.Eq("P

我尝试使用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且总值小于零的所有记录。但不知何故,代码不起作用。它不会抛出任何错误,但根本不起作用。

这可能是因为您为实体提供了一个别名(“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));

“行不通”是什么意思?它不返回任何内容,它返回的账单总额超过0,什么?我的意思是,它不会抛出任何错误,但也不会过滤任何数据。