代码之家  ›  专栏  ›  技术社区  ›  ajma

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

  •  11
  • ajma  · 技术社区  · 17 年前

    现在SQLServer2008内置了全文搜索功能。我希望用它来推动我的网站的搜索。我还考虑在ORM中使用ADO.NET实体框架,但我想知道如何使用Linq到ADO.NET实体框架进行全文搜索(FTS)?

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

    2 回复  |  直到 17 年前
        1
  •  12
  •   Marc Gravell    17 年前

    实体框架只支持可用sql功能的一个子集(部分是为了在一系列提供程序上保持兼容)。然而,即使是LINQtoSQL(它支持更多特定于SQLServer的构造,如UDF)也不支持全文AFAIK。

    我认为您需要使用存储过程/udf。首选UDF方法,因为元数据层要强大得多,并且它在db服务器上是可组合的——但是,Entity Framework不喜欢UDF(或者我上次检查时不喜欢UDF)-p因此您可能必须使用存储过程。

        2
  •  10
  •   Drew Noakes    15 年前

    我在EF4中看到过这样的代码:

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

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