Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

É possível usar a pesquisa de texto completo (FTS) com LINQ?


Sim. No entanto, você precisa criar a função do servidor SQL primeiro e chamá-la, pois por padrão o LINQ usará um like.

Este post do blog que explicará os detalhes, mas este é o extrato:

Para fazê-lo funcionar, você precisa criar uma função com valor de tabela que não faça nada mais do que uma consulta CONTAINSTABLE com base nas palavras-chave que você passa,
create function udf_sessionSearch
      (@keywords nvarchar(4000))
returns table
as
  return (select [SessionId],[rank]
            from containstable(Session,(description,title),@keywords))

Em seguida, você adiciona essa função ao seu modelo SQL do LINQ 2 e pronto, agora você pode escrever consultas como.
    var sessList = from s   in DB.Sessions
                   join fts in DB.udf_sessionSearch(SearchText) 
                   on s.sessionId equals fts.SessionId
                 select s;