【问题标题】:Nhibernate - QueryOver. IsLike with multiple conditionsNhibernate - QueryOver。 IsLike 具有多个条件
【发布时间】:2012-08-14 08:32:29
【问题描述】:

我不知道如何创建具有多个条件的 IsLike 查询。

criteria =  criteria.Add(Restrictions.Like("IpAdress", "%" + request.Keyword + "%") ||
            Restrictions.Like("MacAdress", "%" + request.Keyword + "%") ||
            Restrictions.Like("al.SerialNumber", "%" + request.Keyword + "%"));

如何将上面的查询转换为 IQueryOver 格式?

谢谢!

【问题讨论】:

    标签: nhibernate queryover


    【解决方案1】:

    您尚未发布您的实体的外观,但您可以按照以下方式编写一些内容:

    query.Where(Restrictions.Disjunction()
        .Add(Restrictions.On<Type>(x => x.IpAddress).IsLike(request.Keyword))
        .Add(Restrictions.On<Type>(x => x.MacAdress).IsLike(request.Keyword))
        .Add(Restrictions.On<Type2>(x => x.SerialNumber).IsLike(request.Keyword)));
    

    或者您可以使用|| 运算符而不是析取:

    query.Where(
        Restrictions.On<Type>(x => x.IpAddress).IsLike(request.Keyword) ||
        Restrictions.On<Type>(x => x.MacAdress).IsLike(request.Keyword) ||
        Restrictions.On<Type2>(x => x.SerialNumber).IsLike(request.Keyword));
    

    这里有一些类似的 SO 问题以获取更多信息:
    queryover and (x like 'a' or y like 'a')
    QueryOver Or with Subquery

    【讨论】:

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