Я использую полнотекстовый поиск с LINQ в своем приложении, и поскольку это не поддерживается LINQ, я использую обходную функцию с табличной функцией. Эта функция создается на SQL Server 2008.
Удивительно, но я получаю ошибку "Полнотекстовый параметр запроса для строки полного текста недопустим" при поиске простого текста, например. "Менеджер"
Я использовал SQL Server Profiler и обнаружил, что LINQ генерировал параметр как nvarchar (4000) вместо nvarchar (250), который находится в моей функции.
Самое большое удивление появилось, когда я изменил свою функцию SQL Server, поэтому он принимает параметр как nvarchar (4000) вместо nvarchar (250), и проблема решена.
Я также играл, чтобы изменить параметр на nvarchar (2000) и меньше, но это также не сработало.
Кто-нибудь знает, почему так происходит?
Обновлено 18 ноября 2013 года - Хорошие новости и плохие новости
Хорошие новости. Я использую Entity Framework 6 для этого конкретного примера, и больше не нужно использовать nvarchar (4000)
Плохая новость - вместо этого вы должны использовать nvarchar (max): - (