代码之家  ›  专栏  ›  技术社区  ›  VoodooChild

NHibernate:使用表达式

  •  0
  • VoodooChild  · 技术社区  · 15 年前

    使用nhibernate,我希望查询整数数据类型,但它总是返回完全匹配的数据类型。

    如何编写返回以输入的数字开头的列表的表达式?

    现在我把它用作: (clientnum很长)

    crit.Add(Expression.Like("ClientNumber", clientNum)); //this always gives me exact matches only
    

    所以我尝试了下面的方法,但是它抱怨的是wroing类型(它只需要一个字符串)

    crit.Add(Expression.Like("ClientNumber", clientNum, MatchMode.Start));
    

    更新:我还尝试了clientNum.toString(),但是我得到一个DB异常,说类型无效。

    我可以使用下面的SQL来获得我想要的,但是如何在nhibernate中做到这一点??

    SELECT * FROM ClientTable
    WHERE clientNum LIKE '3%' --incase I wanted a list that starts with 3...
    
    1 回复  |  直到 15 年前
        1
  •  1
  •   JoeGeeky    15 年前

    我不确定.NET版本,但hybernate支持有限的强制转换(例如 铸造(…)作为……) 在HQL。我认为您需要将值强制转换为字符串,然后应用 喜欢 子句。应该能够在HQL中完成这一切。或者,您可以使用SQL表达式(例如 表达式.sql(…) )用T-SQL做同样的事情。