Nhibernate - QueryOver.IsLike有多种条件

Iev*_*nov 2 nhibernate queryover

我无法弄清楚如何创建具有多个条件的IsLike查询.

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

如何将上面的查询翻译成IQueryOver格式?

谢谢!

Mir*_*vic 6

你没有发布你的实体的样子,但你可以写下这些内容:

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)));
Run Code Online (Sandbox Code Playgroud)

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

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));
Run Code Online (Sandbox Code Playgroud)

这里有一些类似的SO问题更多信息:
queryover和(x像'a'或y喜欢'a')
QueryOver或子查询