검색 아래 코드 스 니펫을 사용하면 테이블의 세 필드와 문자열을 비교할 수 있습니다. 일치하는 필드가 있으면 항목이 결과에 포함됩니다. 그러나 Where를 사용하여 결과를 필터링하면 "문자열이 세 필드 모두와 일치해야합니다"대신 "문자열이 세 필드 중 하나와 일치 할 수 있습니다"라는 결과가 발생합니다.Linq - LINQ 쿼리를 동적으로 작성할 때 OrWhere 식을 시뮬레이트 하시겠습니까?
동적으로 LINQ 쿼리를 작성할 때 OrWhere 식을 시뮬레이트하는 방법이 있습니까?
var foundUsers = from UserInfo user in entities.UserInfo
select user;
if (searchCompleteName)
{
foundUsers = foundUsers.Where(u => u.CompleteName.Contains(searchString));
}
if (searchPortalID)
{
foundUsers = foundUsers.Where(u => u.PortalID.Contains(searchString));
}
if (searchUsername)
{
foundUsers = foundUsers.Where(u => u.UserIdentity.Contains(searchString));
}
추신. Entities Framework 및 LINQ to Entities를 사용하고 있으며 MVC3 웹 응용 프로그램을 만들고 있습니다.
'.AsExpandable을 필요로하지 않는 대안도 참조 내 [블로그 게시물 (http://blog.abodit.com/2013/02/creating-and-or-expressions-linq/)()'. –