私は検索クエリを行うためにSQLにVB.NETとLinqを使用しています。私はLinqのContainsメソッドを使って入力キーワードを調べています。これはこのようなものですnote.note_content.Contains(InputKeyWord)
。LinqからSQLに単語全体を検索
「コード」を検索すると、「それに応じて」も出てくるという問題があります。結果をキーワードとのみ一致させたい。
Linqでキーワード全体を検索するにはどうすればよいですか?
ありがとうございます。
私は検索クエリを行うためにSQLにVB.NETとLinqを使用しています。私はLinqのContainsメソッドを使って入力キーワードを調べています。これはこのようなものですnote.note_content.Contains(InputKeyWord)
。LinqからSQLに単語全体を検索
「コード」を検索すると、「それに応じて」も出てくるという問題があります。結果をキーワードとのみ一致させたい。
Linqでキーワード全体を検索するにはどうすればよいですか?
ありがとうございます。
私は、inputKeywordが先頭と末尾に現れることができると仮定しているため、3つの可能な場所に3つのOR句を指定する必要があります。したがって、あなたのLINQ where節はこのようになります。
note.note_content.StartsWith(InputKeyword & " ") OR _
note.note_content.EndsWith(" " & InputKeyword) OR _
note.note_content.Contains(" " & InputKeyword & " ")
これはかなり解決策ではありませんが、うまくいくはずです。あなたが正規表現に熟達しているなら、それはLINQのオプションでもあります。
この読み:私はあなたのキーワードを推測How to Combine LINQ with Regular Expressions
Regexでこれを行う方法を教えていただければ幸いです。 –
私はRegexがうまくいかないので、私はあなたのためのリンクを提供しました。しかし、私の例ではwhere節を使ってみましたか? –
はい、私はやって、それは働いた。あなたのご意見ありがとうございます。 :D –
データの区切り文字またはスペースはありますか? .Like(InputKeyword)を使用すると、もう少し細かく調整することができます。
私は我々がLikeメソッドを持っているとは思わない。 –
Likeメソッドが必要です。 –
は最初にして最後に区切り文字を持っています。それが本当なら、あなたは使用できます
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コード」、「コードの何か」などを検索できます。 –
これはなぜ-1でしたか?明らかにこの質問への答えと何か私は喜んで見つけた – toy