2012-02-10 3 views
0

LINQ에서 두 개 이상의 SqlMethods.Like 문이 필요하고이를 수행하는 방법을 잘 모르겠습니다.LINQ - 또는 두 개의 SqlMethods.Like 절

나는 벤더 ID와 벤더 이름 필드를 가지고있다. 그러나 사용자가 자신의 이름이나 ID를 기반으로 벤더를 검색 할 수있게 해주는 일반적인 벤더 검색 만있다. 또한 검색시 와일드 카드를 허용하므로 ID 또는 이름이 사용자 입력과 유사한 공급 업체를 찾아야합니다.

아래와 같이하고 싶지만 분명히 올바르지 않습니다. (편집 : 작성된 그것은 작동 않습니다.)

results = results.Where(p => SqlMethods.Like(p.VendorId, inputVendor.Replace("*", "%") || 
          SqlMethods.Like(p.VendorName, inputVendor.Replace("*", "%")); 

배경 : 내가 추가 할 경우 따라서 사용자가 입력 한 검색 매개 변수, 결과 = results.Where 부분에 따라 문.

도움이 필요하십니까?

답변

2

"분명히"올바르지 않은 이유는 분명하지 않습니다. 아마도 작동하지 않을 것입니다. 그렇지 않으면 게시하지 않았을 것입니다. 그러나 명확하지 않습니다. 어떻게이 작동하지 않습니다.

string vendorPattern = inputVendor.Replace("*", "%"); 

을하지만 나는이 작업을 기대 : 당신이 제한된다 물론

results = results.Where(p => SqlMethods.Like(p.VendorId, vendorPattern) || 
          SqlMethods.Like(p.VendorName, vendorPattern)); 

나는이 같은 전에 쿼리를 교체 을 수행 제안

여기서 와일드 카드는 SQL LIKE 쿼리에 나타날 수 있지만 별도의 문제입니다. (시작이나 끝 부분에 있지 않다면 행동에 대한 확신이 없습니다.)

그래도 도움이되지 않는다면 문제를 해결할 때 어떤 일이 일어나는지 질문을 업데이트하십시오.

+0

어. 그것은 효과가있었습니다. 내 문제는 코드에서 오타였습니다. (내가 다른 하나를 중첩시킨 것과 같이) 내가 SO 질문을 위해 타이핑 할 때하지 않았던 것을 보았습니다. –