2012-08-14 3 views
2

여러 조건으로 IsLike 쿼리를 작성하는 방법을 알 수 없습니다.Nhibernate - QueryOver. 여러 조건을 가진 IsLike

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

위의 쿼리를 IQueryOver 형식으로 변환하는 방법은 무엇입니까?

감사합니다.

답변

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))); 

또는 대신 분리의 || 연산자를 사용할 수 있습니다

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)); 
다음

됩니다 더 많은 정보를 위해 유사한 비슷한 질문 : queryover and (x like 'a' or y like 'a')
QueryOver Or with Subquery

+0

감사합니다. 작동합니다! –