을 포함,이 문은 마지막 이름 -예기치 않은 동작이 사람들의 쿼리 방법
var results = repository.GetQuery().Where(p => p.Names
.Select(n=> n.LastName)
.Contains("And");
그것은 어떤 결과를 반환하지 않습니다에있는 "그리고"결과의 수를 반환해야합니다. 변경된 경우 -
var results = repository.GetQuery().Where(p => p.Names
.Select(n=> n.LastName)
.Contains("Anderson");
성을 가진 모든 사람들에게 앤더슨을 제공합니다.
분명히 Like 대신 Like라고 변환됩니다. 또한 우리는이 모든 사람을 반환합니다 "그리고"어느 곳이 성에서, 불행하게도 그것은 단지 사람의 첫 번째 LASTNAME을 확인
var results = repository.GetQuery().Where(p => p.Names
.Select(n=> n.LastName)
.FirstOrDefault()
.Contains("And");
을 BE-하도록 수정했습니다.
var results = repository.GetQuery().Where(p => p.Names
.Any(n=> n.LastName
.Contains("And"));
제대로 작동하지만 원하는대로 사용할 수 없습니다.
마지막 쿼리 만 올바른 것이므로 사용 방법을 설명해야합니다. –
afaik가 LINQ to Entities에서 지원되지 않는 * 전체 텍스트 검색을 원할 경우 상점 쿼리를 사용하여 직접 롤백해야합니다. – BrokenGlass
우리는 동적 쿼리를 작성하고 있으며 모두 Where 메서드 내에 포함되어 있습니다. 동적 쿼리는 1. Property, 2. ComparisonOperator (==, <=, Contains 등) 3. Value로 구성됩니다. 그런 다음 여러 검색 표현식에 대한 명령문/메소드의 위치를 연결합니다. 그래서 우리는 Where 메소드에 모든 것을 적합하게하려고 노력합니다. 그래서 우리는 적절히 파싱 될 수 있습니다. –