Как использовать содержит (T- SQL) в Entity Framework - PullRequest
1 голос
/ 22 марта 2020

Я ищу эквивалент этой функции T- SQL:

SELECT * 
FROM dbo.users 
WHERE CONTAINS (name, 'Jack')

в Entity Framework.

Спасибо.

PS "содержит" in linq эквивалентно LIKE в T SQL (например, «% jack%»). Я не ищу этого, потому что этот вид поиска, особенно в больших базах данных, может повлиять на производительность.

Ответы [ 3 ]

2 голосов
/ 22 марта 2020

Ключевое слово CONTAINS является частью функции полнотекстового поиска на SQL Сервере - и на сегодняшний день EF изначально не поддерживает полнотекстовый поиск.

Существует несколько подходов, использующих «перехватчики» EF или простую и простую хранимую процедуру T- SQL для включения этой функции в EF, но она не является частью пакета EF, предоставляемого Microsoft.

См. Эти другие вопросы SO:

0 голосов
/ 22 марта 2020

На самом деле, В SQL должно быть

SELECT * 
FROM dbo.users 
WHERE name like '%Jack%'

А в EF оно равно

var result = dbContext.users.Where(p => p.name.Contains("Jack")) 
0 голосов
/ 22 марта 2020

Я думаю, что это просто users.Where(x => x.name.Contains("jack"));

...