Sql Server Freetext через Entity Framework

У меня есть существующий веб-сайт, созданный с использованием ASP.NET MVC 3 и Entity Framework 4, запрашивающих базу данных Sql Server 2008. Он содержит форму поиска примерно с 10 полями, и когда пользователь нажимает кнопку отправки, я динамически создаю запрос Entity SQL, содержащий только указанные поля поиска, опуская пустые. Оно работает. Пока все хорошо.

Теперь клиенту требуется режим полнотекстового поиска для одного из полей. Я считаю этот запрос довольно сложным, потому что (AFAIK):

  • Entity Framework изначально не поддерживает полнотекстовый поиск
  • Я хочу избежать хранимых процедур для обертывания синтаксиса FTS, потому что до сих пор я использовал только «статический» SP, сохраняя логику в коде .NET. Поэтому я хочу попытаться избежать построения запроса внутри процедуры. И создание одной процедуры для каждой возможной комбинации полей поиска не вариант.

Решения, о которых я мог думать до сих пор:

  • Включение хранимой процедуры или определяемой пользователем функции в качестве предадиката поиска в предложение WHERE (я не уверен хотя это возможно)
  • Получение только результатов FTS во временной таблице и выполнение других фильтров для этой временной таблицы. Я боюсь плохой производительности, если будет много результатов FTS с этой техникой ...

Как лучше всего справиться с этим?

10
задан Shtong 6 May 2011 в 14:03
поделиться