0
AND 연산자를 사용하여 IQueryable.Where 절을 사용하여 다중 검색을 수행하는 데 문제가 있습니다. 나는 문제가 매개 변수가 공백이거나 다른 매개 변수를 사용하여 결과를 반환하지 않는 null 인 것을 알고 있지만 nulls 또는 null을 확인하려면 확장되고 엄청나게 중첩되어 있어야합니다. 8 개의 매개 변수에 공백이 있습니다. 난 며칠 동안이 봤어, OR 분명히 작동하지만 AND 조건은 아무것도 반환합니다.IQueryable.Where 절이 여러 검색 매개 변수로 작업하지 않습니다.
albums = albums.Where(a => a.CA_AlbumName.ToUpper().Contains(searchName.ToUpper()) &&
a.CA_AlbumURL.ToUpper().Contains(searchURL.ToUpper()));
위의 두 매개 변수가 비어 있지 않으면 위의 작동하지만 둘 중 하나가 있으면 아무 것도 반환하지 않습니다. 나는 당신의 요구를 잘 이해하면
if (!String.IsNullOrEmpty(searchName))
{
albums = albums.Where(a => a.CA_AlbumName.ToUpper().Contains(searchName.ToUpper()));
}
if (!String.IsNullOrEmpty(searchURL))
{
albums = albums.Where(a => a.CA_AlbumURL.ToUpper().Contains(searchURL.ToUpper()));
}
+1 아마 문자열의 결과를 저장할 것입니다 .IsNullOrEmpty()가 어딘가에 있으므로 매번 평가되지는 않지만 작동하지 않으면 안됩니다. –
@ JamesD'Angelo 잔인한 진실! 답변을 업데이트했습니다. – tugberk
하! 누군가가 자신의 프로젝트에 "마법의 해결책"을 잘라내어 붙여 넣기로 결정한 경우를 대비하여 게시하고 싶었습니다. 좋은 대답과 업데이트. –