使用Entity Framework 6 Interceptor

时间:2016-07-28 14:45:45

标签: entity-framework-6 full-text-search wildcard

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

此示例适用于完整单词搜索,但不讨论如何实现通配符后缀。

例如,我可以在SQL中执行以下操作并获得" bill"或者"比利"使用' *'到底。如何将其添加到我的拦截器?

select * from dbo.messagethread a where contains(Text, '"bil*"')

如果你看一下上面那个链接中的示例代码,我想是否有可能这样的事情(如下),但显然这不起作用,因为它被添加到参数名称而不是值。

string.Format(@"contains([$1].[$2], @{0} *)", parameter.ParameterName));

有些问题like this one在SQL中以全文的形式讨论通配符。

1 个答案:

答案 0 :(得分:1)

在问题中提供的示例链接中查找此行。

parameter.Value = value;

然后,要做前缀匹配,只需在下面添加此行。

value = $"\"{value}*\""; // prefix match

我们基本上改变参数的值,使其中的*在双引号内。 现在,如果您搜索" bil",您将获得结果" bill" /" billy"等等。