J'utilise la recherche de texte intégral avec LINQ dans mon application et comme cela n'est pas pris en charge par LINQ, j'utilise une solution de contournement de fonction table. La fonction est créée sur SQL Server 2008.Le paramètre de requête de texte intégral pour la chaîne de requête Fulltext n'est pas valide
De manière surprenante, j'obtiens une erreur "Le paramètre de requête de texte intégral pour la chaîne de requête Fulltext n'est pas valide" lorsque je recherche un texte simple, par ex. "Manager"
J'ai utilisé SQL Server Profiler et j'ai découvert que LINQ générait le paramètre nvarchar (4000) au lieu de nvarchar (250) qui est dans ma fonction.
La plus grande surprise est venue quand j'ai changé ma fonction de SQL Server ainsi elle accepte le paramètre comme nvarchar (4000) au lieu de nvarchar (250) et le problème est résolu.
Je jouais aussi pour changer le paramètre en nvarchar (2000) et moins mais cela ne fonctionnait pas non plus.
Est-ce que quelqu'un sait pourquoi cela se comporte de cette façon?
Mise à jour le 18 Novembre 2013 - bonnes nouvelles et de mauvaises nouvelles
Bonnes nouvelles - Je suis maintenant en utilisant Entity Framework 6 pour cet exemple particulier et ce ne sont pas plus besoin d'utiliser nvarchar (4000)
Mauvaises nouvelles - Vous devez utiliser la place nvarchar (max) :-(
La seule chose qui vient à l'esprit est que vous avez la structure de la table de base de données mises en cache lors de la conception de dbml. Vous pouvez le changer complètement en nvarchar (max) et le remapper dans votre application. –