将Linq转换为T-Sql包含函数

时间:2016-02-17 07:40:54

标签: c# sql .net linq contains

我已经在人类fullName部分上构建了一个全文索引,并希望改进我当前搜索实现的结果。

目前我正在使用Linq Contains()方法,然后将这些方法转换为Sql'LIKE'表达式。

但现在我想将我的Linq表达式转换为T-Sql CONTAINS()函数,它将使用我的全文索引来更快地搜索。

如何用linq实现这个?

我当前的linq表达式如下:

var query = from pi in context.PersonInfos                                    
        where
            (pi.FirstName.Contains(token0)
             || pi.LastName.Contains(token0)
             || pi.MiddleName.Contains(token0))
            && !pi.Disabled
        select pi;

或者也许类似于SqlMethods扩展,有方法,转换为CONTAINS()?

1 个答案:

答案 0 :(得分:2)

似乎EF6不支持这种方法,尽管有一种解决方案可以使用。

http://www.entityframework.info/Home/FullTextSearch