3

複数の条件でIsLikeクエリを作成する方法がわかりませんでした。

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

上記のクエリをIQueryOver形式に変換するにはどうすればよいですか?

ありがとう!

4

1 に答える 1

8

あなたはあなたの実体がどのように見えるかを投稿していませんが、あなたはこれらの線に沿って何かを書くことができます:

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および(xは「a」のように、yは「a」のように)
QueryOverまたはサブクエリを使用

于 2012-08-14T09:23:54.617 に答える