데이터베이스의 Contacts
테이블에서 모든 레코드를 가져온 다음이 값을 사용자가 검색 양식에서 선택한 값에 따라 필터를 적용하는 findAll
함수가 있습니다. 결과는 한 번에 한 개의 필터로 필터링됩니다.C# IQueryable not working
IQueryable<Contact> resultContacts = db.Contacts;
if(request['Name'] != "")
{
resultContacts = resultContacts.Where(a => a.Name.Contains(Name));
}
if(request['Phone'] != "")
{
resultContacts = resultContacts.Where(a => a.Phone.Equals(Phone));
}
if(request['Company'] != "")
{
resultContacts = resultContacts.Where(a => a.Company.Contains(Company));
}
return resultContacts;
문제는 이제 작동하지 않는다는 것입니다. 각 if
안에있는 resultContacts.Where
은 원래 이유 번호로 첫 번째 줄에 있던 resultContacts
으로 재설정됩니다. 예를 들어 : 디버깅 할 때 변경 사항은 첫 번째 if (100 개의 레코드 중 10 개까지 끝납니다.)에 적용됩니다.하지만 두 번째 if에 들어가면 코드는 원래 resultContacts
을 쿼리합니다. 첫 번째 결과는 if
입니다.
2 주 전까지 1 년 동안 정상적으로 작동했습니다. 내 코드에서 뭔가 바뀌 었는지 모르겠다. 내가이 변경을하는 참조 또는 뭔가를 추가했다면.
왜 그런가? 감사합니다.
각 쿼리에서 요청 개체를 사용하셨습니까? – Niklas
나는이 구문을 허용하는 C#을 놀라게한다. request [ 'Phone']'single quote embrace'char' not'string' – Imad
또한, request [ 'Name']) ]'는'이름'과 같은 것이 아닙니다. 'Phone'과'Company'에 대한 내용입니다. 당신이 가지고있는 것과 같이 보이는 코드를 넣지 마십시오. * 실제 * 코드 게시. – hvd