Je me demande si est possible d’utiliser FTS avec LINQ à l’aide de .NET Framework 3.5. Je suis à la recherche autour de la documentation qui n’a pas encore trouver quelque chose d’utile.
Quelqu'un a-t-il une expérience là-dessus ?
Je me demande si est possible d’utiliser FTS avec LINQ à l’aide de .NET Framework 3.5. Je suis à la recherche autour de la documentation qui n’a pas encore trouver quelque chose d’utile.
Quelqu'un a-t-il une expérience là-dessus ?
Oui. Cependant, vous devez créer la fonction SQL server d'abord, qu'en tant que par défaut LINQ va utiliser une comme.
Ce billet de blog qui vous expliquera les détails, mais c'est l'extrait:
Pour le faire fonctionner, vous devez créer une fonction à valeur de table qui ne rien de plus qu'un CONTAINSTABLE requête basée sur les mots clés que vous passer dans,
create function udf_sessionSearch (@keywords nvarchar(4000)) returns table as return (select [SessionId],[rank] from containstable(Session,(description,title),@keywords))
Vous pouvez ensuite ajouter cette fonction à votre LINQ 2 modèle SQL et il a presto, vous vous pouvez maintenant écrire des requêtes comme.
var sessList = from s in DB.Sessions join fts in DB.udf_sessionSearch(SearchText) on s.sessionId equals fts.SessionId select s;
Si vous ne voulez pas créer des jointures et souhaitez simplifier votre code c#, vous pouvez créer la fonction SQL et l’utiliser en « de » clause :
Après mise à jour de votre DBML, utilisez-le dans linq :
Cela produira SQL simple comme ceci :
Il s’agit de travaux de recherche par plusieurs colonnes comme vous pouvez le voir sur la mise en œuvre de la fonction ad_Search.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.