Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 使用Linq to SQL搜索整个单词_.net_Linq_Linq To Sql - Fatal编程技术网

.net 使用Linq to SQL搜索整个单词

.net 使用Linq to SQL搜索整个单词,.net,linq,linq-to-sql,.net,Linq,Linq To Sql,我正在使用VB.NET和LINQtoSQL进行搜索查询。我正在使用Linq的Contains方法查找输入关键字。它是这样的note.note\u content.Contains(InputKeyWord) 问题是,如果我搜索“线”,那么“根据”也会出现。我希望结果只与关键字匹配 如何使用Linq搜索整个关键字 谢谢。数据周围是分隔符还是空格?您可以使用.Like(InputKeyword)对其进行进一步细化。我假设InputKeyword可以出现在注释的开头、中间和结尾的任何位置,因此您需要为

我正在使用VB.NET和LINQtoSQL进行搜索查询。我正在使用Linq的Contains方法查找输入关键字。它是这样的
note.note\u content.Contains(InputKeyWord)

问题是,如果我搜索“线”,那么“根据”也会出现。我希望结果只与关键字匹配

如何使用Linq搜索整个关键字


谢谢。

数据周围是分隔符还是空格?您可以使用.Like(InputKeyword)对其进行进一步细化。

我假设InputKeyword可以出现在注释的开头、中间和结尾的任何位置,因此您需要为它可能出现的3个位置设置3个OR子句。所以,您的LINQ where子句可能最终看起来是这样的

note.note_content.StartsWith(InputKeyword & " ") OR _
note.note_content.EndsWith(" " & InputKeyword) OR _
note.note_content.Contains(" " & InputKeyword & " ")
这不是一个很好的解决方案,但它应该会起作用。如果您精通正则表达式,那么LINQ也可以选择正则表达式


阅读以下内容:

我想你的关键词开头和结尾都有分隔符。如果这是真的,你可以用

from n in note
where n.note_content.Contains(beginDelimiter + InputKeyWord + endDelimiter) ||
      n.note_content.StartsWith(InputKeyWord + endDelimiter) || 
      n.note_content.EndsWith(beginDelimiter + InputKeyWord)
select n

没有分隔符。用户可以搜索任何像“2线”,“线的东西”。我不认为我们有喜欢的方法。你应该有喜欢的方法。我不擅长正则表达式,这就是为什么,我为你提供了链接。但是,您是否尝试在我的示例中使用where子句?我确实将其标记为答案,但我从网站上收到了红色通知,上面写着“/content/img/vote-accepted.png(单击此框可驳回)”。所以,我点击了好几次。为什么给它一个-1?很明显,这个问题有答案,我很高兴能找到答案