where
조건이 다음 코드에 적용되지 않는 이유는 무엇입니까? 검색 할 때 결과가 필터링되지 않습니다. 디버그 할 때 searchString
에는 값이 있고 실행은 _data.Where
절을 통과하지만 필터링 된 결과를 반환하지 않습니다.LINQ to SQL - 필터링 된 WHERE 절
내가 여기서 잘못하고있는 것은 무엇입니까?
IQueryable<UserViewModel> _data = (
from a in context.aspnet_Users
join b in context.aspnet_Membership on a.UserId equals b.UserId
where b.IsApproved == true
select new UserViewModel
{
UserId = a.UserId,
UserName = a.UserName,
FirstName = a.FirstName,
LastName = a.LastName,
EmailAddress = b.Email
})
.OrderBy(a => a.FirstName)
.ThenBy(b => b.LastName);
if (!String.IsNullOrEmpty(searchString))
{
_data = _data
.Where(x => x.FirstName.Contains(searchString))
.Where(y => y.UserName.Contains(searchString))
.Where(y => y.LastName.Contains(searchString))
.Where(y => y.EmailAddress.Contains(searchString));
}
두 번째 쿼리 만 관련 있다고 가정합니다. 이 쿼리는 FirstName * 및 * UserName * 및 * LastName * 및 * Email이 모두 같은 문자열로 시작하는 레코드를 찾습니다. 내 생각에 당신이 원한 것 같아요 그들 중 하나라도 검색 문자열로 시작하는지 검사합니다. –
어떻게이 결과를 확인 했습니까? 필터링되지 않은 데이터 란 무엇이며 검색 문자열은 무엇이며 필터링 된 데이터는 무엇입니까? 주어진 레코드에 대해 해당 필드의 4 개 * 모두에 존재하는 검색 문자열을 사용하고 있습니까? – David