Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Est-il possible d'utiliser la recherche en texte intégral (FTS) avec LINQ ?

Oui. Cependant, vous devez d'abord créer une fonction de serveur SQL et l'appeler car, par défaut, LINQ utilisera un similaire.

Ce billet de blog qui expliquera le détail mais voici l'extrait :

Pour le faire fonctionner, vous devez créer une fonction de table qui ne fait rien de plus qu'une requête CONTAINSTABLE basée sur les mots-clés que vous passez,

create function udf_sessionSearch
      (@keywords nvarchar(4000))
returns table
as
  return (select [SessionId],[rank]
            from containstable(Session,(description,title),@keywords))

Vous ajoutez ensuite cette fonction à votre modèle SQL LINQ 2 et hop 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;