.net 使用Linq to SQL搜索整个单词
我正在使用VB.NET和LINQtoSQL进行搜索查询。我正在使用Linq的Contains方法查找输入关键字。它是这样的.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可以出现在注释的开头、中间和结尾的任何位置,因此您需要为
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?很明显,这个问题有答案,我很高兴能找到答案