【问题标题】:Filtering only negative values using nhibernate projection queries使用 nhibernate 投影查询仅过滤负值
【发布时间】:2012-06-19 19:43:44
【问题描述】:

我正在尝试使用 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,什么?
  • 不会工作我的意思是它不会抛出任何错误,但它也不会过滤任何数据。

标签: nhibernate nhibernate-criteria nhibernate-projections


【解决方案1】:

这可能是因为你给你的实体一个别名(“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));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多