sql >> Databasteknik >  >> RDS >> Sqlserver

Är det möjligt att använda Full Text Search (FTS) med LINQ?

Ja. Men du måste skapa SQL-serverfunktion först och anropa den eftersom LINQ som standard använder en like.

Detta blogginlägg som kommer att förklara detaljerna men detta är utdraget:

För att få det att fungera måste du skapa en tabellvärderad funktion som inte gör något mer än en CONTAINSTABLE-fråga baserat på de nyckelord du skickar in,

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

Du lägger sedan till den här funktionen i din LINQ 2 SQL-modell och han presto kan du nu skriva frågor som.

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


  1. En guide till automatiserade molndatabaser

  2. Hur man skickar e-post från MySQL 5.1

  3. Hur Scale()-funktionen fungerar i PostgreSQL

  4. Tabell anges två gånger, både som mål för 'UPPDATERING' och som en separat källa för data i mysql