2011-11-22 2 views
6

Linq-to-object에서 을 동적 Linq와 함께 사용하면 검색에서 대/소문자가 구분됩니다. 대소 문자를 구분하지 않고 검색 할 수 있기를 바랍니다 (Linq-to-sql과 같이 SQL 서버는 기본적으로이 작업을 수행합니다). 같은대/소문자를 구분하지 않음 동적 Linq가 포함

뭔가 : true 의미

this.someQuery = this.someQuery.Where(field + ".Contains(@0, true)", strValue); 

: caseinsensitive = trueSystem.String.Contains 제공의 확장 같은. 비록 내가 System.String 기본적으로 동적 Linq 확장을 사용할 수 없습니다.

+0

'this.someQuery = this.someQuery.Where (ToLower()는 (@ 0, true)를 포함합니다. ", strValue.ToLower()); 공장. Dynamic.cs를 약간 변경 했으므로 기본적으로 작동하는지 모르겠습니다. –

+0

가능한 중복 [LINQ 대소 문자를 구분하지 않음] (http://stackoverflow.com/questions/3360772/linq-contains-case-insensitive) – Sjoerd

+0

동적 linq에 대한 것이 아니기 때문에 중복이 아닙니다. –

답변

13

비교할 수있는 곳은 .ToLower()뿐입니다. 다음과 같이 입력하십시오 :

this.someQuery = this.someQuery.Where(field.ToLower().Contains(strValue.ToLower())); 

또는 내가 뭘 찾고 있는지 오해 했습니까?

+0

ToLower()는 Dynamic Linq에서 지원되지 않습니다. –

+1

저는 이것을 시험해 보았습니다. 어제 분명히 작동하지 않았던 this : this.someQuery = this.someQuery.Where (field + "ToLower). 포함 (@ 0, true) ", strValue.ToLower()); –

+0

믿기지 않습니다. 간단합니다. 나는 어제 이것을 시도했지만 아마도 오타 나 무언가를 만들었다는 것을 안다. 당신의 제안에 대해 글쎄요! –

관련 문제