0

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

4

1 回答 1

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));
于 2012-06-20T08:46:31.210 回答