How do you use Linq to ADO.NET entity framework to do full text search (FTS)?

c# entity-framework full-text-search linq-to-entities sql-server-2008

Question

Now that SQL Server 2008 has full text search built in. I'm looking to use it to power my website's search. I'm also looking at using ADO.NET entity framework for my ORM but I was wondering how do you do full text search (FTS) with Linq to ADO.NET entity framework?

Is there any support in ADO.NET entity framework or am I stuck using the method of creating a function which uses the full text search predicates?

1
11
2/11/2009 12:14:32 AM

Accepted Answer

Entity Framework supports only a subset of the sql functionality available (partly to remain compatible over a range of providers). However, even LINQ-to-SQL (which supports a lot more SQL-Server specific constructs, such as UDFs) doesn't support full-text AFAIK.

I believe you need to use a stored procedure / udf. The UDF approach is preferred, as the metadata layer is much stronger, and it is composable at the db server - however, Entity Framework doesn't (or didn't, last time I checked) like UDFs ;-p So you may have to use a stored procedure.

12
2/11/2009 5:03:10 AM

Popular Answer

I've seen code like this for EF4:

var query = context.ExecuteStoreQuery<Person>(
        "SELECT * FROM People WHERE FREETEXT(*,{0})", 
        searchText
    ).AsQueryable();

This may be simpler than creating a stored proc or UDP in some cases.



Related Questions





Related

Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow