11

现在SQL Server 2008已经内置了全文搜索功能。我正在使用它来支持我的网站搜索。我也在为我的ORM使用ADO.NET实体框架,但我想知道如何使用Linq将全文搜索(FTS)转换为ADO.NET实体框架?如何用Linq实现全文搜索(FTS)到ADO.NET实体框架?

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

+0

您使用的是EF 4还是更早? – 2011-05-20 14:55:25

回答

12

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

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

+0

在上面的答案中,这可能也有帮助:http://weblogs.asp.net/scottgu/archive/2007/08/27/linq-to-sql-part-8-executing-custom-sql- expressions.aspx – 2009-09-28 06:00:53

+0

@Marc,你记得UDF方法所带来的所有这些年后的任何机会吗? (其实,没关系,我在使用CONTAINSTABLE时看到一些例子) – 2012-03-24 23:29:15

10

我见过这样的代码EF4:

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

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