你如何使用Linq到ADO.NET实体框架进行全文搜索(FTS)?

时间:2009-02-10 21:47:50

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

现在SQL Server 2008内置了全文搜索。我希望用它来支持我网站的搜索。我也在考虑为我的ORM使用ADO.NET实体框架,但我想知道如何使用Linq到ADO.NET实体框架进行全文搜索(FTS)?

ADO.NET实体框架中是否有任何支持,或者我使用method of creating a function which uses the full text search predicates

2 个答案:

答案 0 :(得分:12)

实体框架仅支持可用的sql功能的一部分(部分是为了与一系列提供者保持兼容)。但是,即使LINQ-to-SQL(支持更多SQL-Server特定结构,如UDF)也不支持全文AFAIK。

我相信你需要使用存储过程/ udf。 UDF方法是首选,因为元数据层更强大,并且它可以在数据库服务器上组合 - 但是,实体框架没有(或者没有,我上次检查过)像UDF一样;-p所以你可能有使用存储过程。

答案 1 :(得分:10)

我在EF4上看过这样的代码:

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

这可能比在某些情况下创建存储过程或UDP更简单。