ユーザーが文を入力したとし、入力された文の中の単語からなる語を検索する必要があるとします。これらは私が彼らがその事件を解決できると思ったコードです。データベース内で文字列内の単語を検索する
var result = from x in dataBase.tableName
select x;
string[] words = enteredString.Split();
foreach(string word in words)
{
result = result.Where(x => x.subject.Contains(word));
}
それは文の最後の言葉を持つ唯一の検索結果を示しているが、私は結果が単語がどこのラインで使用されるたびに絞り込まれなければならないと思いました。
あなたが与えてくれた何* *作業...どのように結果が表示されている必要がありますか? 'Where'が複数回呼び出されていることを確認するためにデバッグしましたか? –
それは事をする必要があるように見えます。ブレークポイントを入れてコードをステップ実行することから始めてください。 「言葉」の内容は何ですか? 'database.Log = Console.Out;'と入力して、出力ウィンドウで結果のSQLクエリを見ることもできます。あなたは何を期待していますか? –
あなたはループ変数をクローズしています(http://blogs.msdn.com/b/ericlippert/archive/2009/11/12/closing-over-the-loop-variable-considered-harmful.aspx)クエリでwhere句を作成するときに使用します。したがって、効果的に最後の項目のみをフィルタリングします。 –