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

梦想与她 提交于 2019-12-18 15:13:00

问题


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:


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.




回答2:


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.



来源:https://stackoverflow.com/questions/534356/how-do-you-do-full-text-search-fts-with-linq-to-ado-net-entity-framework

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!