Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

È possibile utilizzare la ricerca full-text (FTS) con LINQ?

Sì. Tuttavia, devi prima creare la funzione del server SQL e chiamarla poiché per impostazione predefinita LINQ utilizzerà un like.

Questo post del blog che spiegherà i dettagli ma questo è l'estratto:

Per farlo funzionare devi creare una funzione con valori di tabella che non faccia altro che una query CONTAINSTABLE basata sulle parole chiave che passi,

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

Quindi aggiungi questa funzione al tuo modello SQL LINQ 2 e presto ora puoi scrivere query come.

    var sessList = from s   in DB.Sessions
                   join fts in DB.udf_sessionSearch(SearchText) 
                   on s.sessionId equals fts.SessionId
                 select s;