Как вы выполняете полнотекстовый поиск (FTS) с помощью сущности Linq to ADO.NET? - PullRequest
11 голосов
/ 11 февраля 2009

Теперь, когда в SQL Server 2008 встроен полнотекстовый поиск. Я хочу использовать его для поиска в моем веб-сайте. Я также смотрю на использование структуры сущностей ADO.NET для моей ORM, но мне было интересно, как вы делаете полнотекстовый поиск (FTS) с инфраструктурой сущностей Linq to ADO.NET?

Есть ли какая-либо поддержка в структуре сущностей ADO.NET, или я застрял, используя метод создания функции, которая использует предикаты полнотекстового поиска ?

Ответы [ 2 ]

12 голосов
/ 11 февраля 2009

Entity Framework поддерживает только подмножество доступных функций sql (частично, чтобы оставаться совместимым с целым рядом поставщиков). Однако даже LINQ-to-SQL (который поддерживает намного больше специфических конструкций SQL-Server, таких как UDF) не поддерживает полнотекстовый AFAIK.

Я считаю, что вам нужно использовать хранимую процедуру / udf. Подход UDF предпочтителен, так как уровень метаданных намного сильнее, и он компонуется на сервере db - однако Entity Framework не (или не сделал, в прошлый раз, когда я проверял) как UDF; использовать хранимую процедуру.

10 голосов
/ 25 мая 2011

Я видел такой код для EF4:

var query = context.ExecuteStoreQuery<Person>(
        "SELECT * FROM People WHERE FREETEXT(*,{0})", 
        searchText
    ).AsQueryable();

В некоторых случаях это может быть проще, чем создание хранимых процедур или UDP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...