홈>
"Britney Spears"가 포함 된 문자열 목록을 검색하려고하는데 이것이 내가 사용하는 것입니다
from p in Objects
where p.Title.Contains("Britney Spears")
select p
잘 작동하지만 "Britney Jean Spears", "Britney 'Sexy'Spears"라는 제목을 선택하려면 작동하지 않으므로 질문은 사이에 와일드 카드 '%'를 삽입하는 방법입니다. LINQ2SQL 검색을 수행하는 동안 브리트니 스피어스? 감사합니다.
감사합니다. 앤디.
-
답변 # 1
-
답변 # 2
StartsWith()
만 사용하십시오 그리고EndsWith()
패턴을 시뮬레이션합니다. AFAIK, LINQ-to-SQL은 와일드 카드를 지원하지 않습니다.from p in Objects where p.Title.StartsWith("Britney") && c.Title.EndsWith("Spears") select p;
그렇지 않으면 더 복잡한 패턴이있는 경우 직접 쿼리를 실행할 수 있습니다.
db.ExecuteQuery<MyObject>("SELECT * " + "FROM Objects " + "WHERE Title LIKE 'Britney%Spears'");
-
답변 # 3
똑바로 SQL을 사용 하듯이 정확하게 수행
like
에 특수 문자를 제공 할 수 있습니다 ".", "%"및 "[]"와 같은 절충분하지 않으면 정규식을 사용할 수 있지만 정규식이 "클라이언트"측에서 실행되므로주의하십시오. 즉, 전체를 가져오고 메모리에서 결과 범위를 좁히려 고 시도합니다.
를 수행하여 zerkms 방법을 다소 최적화 할 수 있습니다from p in Objects where p.Title.Contains("Britney") && p.Title.Contains("Spears") && regex.Match(p.Title).Success select p
테스트하지는 않았지만 SQL 서버 측에서 처음 두 가지 조건을 실행 한 다음 정규식을 사용하여 범위를 좁혀 야합니다.
관련 질문
- c# - 병렬 루프에서 올바르게 삽입하는 방법
- c# - LINQ를 사용하여 항목 그룹화 및 결합
- generics - 여러 개의 Where 절을 사용하는 Linq의 Genrics
- c# - linq는 전체 데이터 소스 또는 지정된 선택 열만 반환합니까?
- c# - linq-to-sql에서 숫자가 Scientifc 표기법으로 변환되지 않도록 방지
- c# - 개체 목록에서 연결된 멤버 IEnumerables 집합을 반환합니다
- .net - 이 SQL을 Entity Framework LINQ 쿼리로 변환하는 방법
- c# - Linq 필터링/검색 로직
- C # Linq-to-SQL 다중 열
- .net - C # Linq에서 역할 기반 사용자 필터링
SqlMethods.Like
를 사용할 수 있습니다 이 목적을위한 방법.