Я использую полнотекстовый поиск с 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 (max) : - (