Ответ 1
Не можете ли вы использовать raw sql? то вы можете сохранить логику в своем коде .NET.
Итак, это выглядит примерно так:
string sql = "DO FULLTEXT STUFF";
MyObjectContext.ExecuteStoreQuery<MyEntity>(sql, .......);
У меня есть существующий сайт, разработанный с использованием ASP.NET MVC 3 и Entity Framework 4, запрашивающих базу данных Sql Server 2008. Он содержит форму поиска с примерно 10 полями, и когда пользователь нажимает кнопку отправки, я динамически создаю запрос Entity SQL, содержащий только указанные поля поиска, опуская пустые. Оно работает. Пока все хорошо.
Теперь клиент хочет, чтобы поведение полного текста находилось в одном из полей. Я считаю этот запрос довольно сложным, потому что (AFAIK):
Решения, о которых я мог подумать:
Какой лучший способ для этого сделать?
Не можете ли вы использовать raw sql? то вы можете сохранить логику в своем коде .NET.
Итак, это выглядит примерно так:
string sql = "DO FULLTEXT STUFF";
MyObjectContext.ExecuteStoreQuery<MyEntity>(sql, .......);
Вам не нужно думать о производительности - это все равно будет медленным, потому что вы будете заменять индексированный полнотекстовый поиск стандартным сопоставлением строк по конкатенированному значению.
Существует три способа:
Любой из этих методов не является решением для производительности.