现在SQL Server 2008已经内置全文搜索功能,我想把它用于我的网站搜索。我还考虑使用ADO.NET实体框架来进行ORM,但是我想知道如何使用Linq to ADO.NET实体框架进行全文搜索(FTS)?
ADO.NET实体框架是否支持全文搜索?或者我只能使用创建一个使用全文搜索谓词的函数的方法呢?
现在SQL Server 2008已经内置全文搜索功能,我想把它用于我的网站搜索。我还考虑使用ADO.NET实体框架来进行ORM,但是我想知道如何使用Linq to ADO.NET实体框架进行全文搜索(FTS)?
ADO.NET实体框架是否支持全文搜索?或者我只能使用创建一个使用全文搜索谓词的函数的方法呢?
Entity Framework仅支持部分可用的SQL功能(部分原因是为了保持与各种提供程序的兼容性)。但是,即使是支持更多SQL Server专有结构(例如UDF)的LINQ-to-SQL,我认为也不支持全文本。
我认为您需要使用存储过程/UDF。UDF方法更优,因为元数据层更强,并且在数据库服务器上可以组合-但是,Entity Framework不喜欢UDF;-p所以您可能需要使用存储过程。
我见过像这样的EF4代码:
var query = context.ExecuteStoreQuery<Person>(
"SELECT * FROM People WHERE FREETEXT(*,{0})",
searchText
).AsQueryable();
在某些情况下,这可能比创建存储过程或用户定义的程序更简单。
IEnumerable
吗? - TN.