현재 우리 프로젝트에서 우리는 Entity Framework 및 LINQ를 사용하고 있습니다. 클라이언트가 다른 필터를 채우지 만 강제되지는 않는 검색 기능을 만들고 싶습니다.LIKE to Entity에서 LIKE 연산자 사용
LINQ에서이 "동적"쿼리를 수행하기 위해 Like 연산자를 사용하여 필드를 검색하거나 사용자가 필드를 채우지 않은 경우 모든 것을 얻기 위해 "%"를 검색했습니다.
우리가 그것을 발견했을 때 농담은 우리를지지하지 않았습니다. 검색을 한 후에 StartsWith를 사용하기에 충분한 답변을 여러 개 읽었지만 우리에게는 쓸모가 없습니다.
ObjectQuery<Contact> contacts = db.Contacts;
if (pattern != "")
{
contacts = contacts.Where(“it.Name LIKE @pattern”);
contacts.Parameters.Add(new ObjectParameter(“pattern”, pattern);
}
그러나, 우리는 LINQ를 고수하고 싶습니다 :
같은 것을 사용하는 유일한 솔루션입니다.
해피 코딩!
'.Contains'는 (예상 할 수 있으므로)가 WHERE XYZ 'SQL로 번역 있도록 LINQ는 이전과 주어진 문자열 후 와일드 카드 문자를 넣어됩니다 LIKE '% [pattern] %''- 시작과 끝에서 와일드 카드를 허용하지 않으려면 충분하지 않습니다. – Jez