Sto utilizzando la ricerca di testo completo con LINQ nella mia applicazione e poiché questo non è supportato da LINQ, utilizzo una soluzione a valori di tabella. La funzione viene creata su SQL Server 2008.Il parametro di query full-text per FullText Query String non è valido
Sorprendentemente, viene visualizzato l'errore "Il parametro di query full-text per FullText Query String non è valido" quando cerco semplicemente un testo, ad es. "Manager"
Ho usato SQL Server Profiler e ho scoperto che LINQ ha generato il parametro come nvarchar (4000) invece di nvarchar (250), che è nella mia funzione.
La sorpresa più grande è arrivata quando ho cambiato la mia funzione SQL Server in modo che accetti i parametri come nvarchar (4000) invece di nvarchar (250) e il problema è risolto.
Stavo anche giocando per cambiare il parametro in nvarchar (2000) e meno, ma anche questo non ha funzionato.
Qualcuno sa perché questo si comporta in questo modo?
aggiornamento il 18 novembre 2013 - Buone notizie e cattive notizie
Buone notizie - ora sto usando Entity Framework 6 per questo particolare esempio e non è più bisogno di usare nvarchar (4000)
Cattive notizie - Devi usare invece nvarchar (max) :-(
L'unica cosa che viene in mente è che si ha la cache struttura delle tabelle del database quando si progetta dbml. Puoi cambiarlo completamente in nvarchar (max) e rimapparlo nella tua applicazione. –