간단한 간단한 검색을 함께 진행했습니다.여러 키워드를 기반으로 쿼리하는 동적 linq-to-SQL
IEnumerable<Member> searchResults = (from m in members
where m.ScreenName.ToUpper().Contains(upperKeyword)
select m).AsEnumerable();
사용자가 "keyword1 keyword2"를 입력하면이 작은 쿼리가 항상 정확한 문자열을 검색합니다. 따라서 키워드를 분할해야한다고 결정했습니다.
string[] keywords = upperKeyword.split(' ');
그런 다음 문제가 발생했습니다. 난 정말이 작업을 수행 할 수 없습니다 배열을지지 않습니다
IEnumerable<Member> searchResults = (from m in members
where m.ScreenName.ToUpper().Contains(keywords) // array of string
select m).AsEnumerable();
.Contains()
때문이다. 내가 어떻게 이걸 이룰 수 있니?
어 ... 이건 정말 유망 해 보인다. 결국에는')'를 덧붙이면된다. 지금 이것을 테스트하십시오. – quakkels
@quakkels - 네가 그 트릭을해야하는데, 유일한 문제는 실제로 모든 것을 메모리로 끌어 와서 필터링하는 대신에 데이터의 일치하는 행을 실제로 끌어 올리는 더 효율적인 솔루션이 있다는 것입니다. – Keith
ToList()를 사용하지 않아도됩니다. 직접 테이블을 참조하고 비교할 수 있어야합니다. 그러나 +1은 값 목록의 부분 일치에 가장 적합한 솔루션입니다. –