我正在使用反向POCO生成的类处理.Net应用程序,并尝试编写一个linq查询,当从用户输入中找到部分匹配时,该查询将从Microsoft Sql Server数据库中检索值。 例如:用户输入:12345 会产生结果 123456, 3434123456, 12345, 123456789001010, 等
但是在linq查询中使用.contains会计算出一个sql语句,并将如下所示的内容添加到语句的末尾: 喜欢@ p__linq__0 ESCAPE'〜'}
这个ESCAPE'〜'增加了14-30秒的执行时间并导致超时问题。
如果有人可以帮助我,那就太好了。
答案 0 :(得分:1)
在.contains()
.contains(inputVariable)
中使用变量时,过滤器会被转义。您可以在过滤器中添加常量,例如:.contains('12345')
或者您可以使用SqlMethods.Like()
代替.contains()
进行比较。
以下是SqlMethods.Like文档的链接:SqlMethods.Like