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