スペースを含む可能性のある検索語に基づいて行を返そうとしています。Where節でLINQでエラーが発生する
次のコードは、次のエラーを生成しています。私は何が間違っているのか分かりません。
Contains演算子以外のクエリ クエリのLINQ to SQL実装では、ローカルシーケンスを使用できません。
var searchTerms = term.Split(' ').ToList();
var surveys = (from s in dc.BasicNeedsSurveys where s.Hidden ==
false orderby s.CreatedOn descending select s)
.Where(x => searchTerms.Any(y => y.Contains(x.FirstName))
|| searchTerms.Any(y => y.Contains(x.LastName))
|| searchTerms.Any(y => y.Contains(x.FEMANumber)));
エラーメッセージは問題を正確に診断しています。あなたの質問を明確にすることはできますか? –
@ eric-lippert、質問を修正しました。私はラムダを使用して結果を返そうとしていますが、検索用語をマッチのためにさまざまなフィールドに対して試す必要があるところを表現しています。 –
あなたのコードは*特定のテキストを検索しているように見えます*。私は 'searchTerms'はあなたが探している用語のセットだとします。そうであれば、実際には 'searchTerms.Any(y => y.Contains(x.LastName))'ではなく 'searchTerms.Contains(x.LastName)'になるはずです。後者は、 '' test''、 '' this'''という言葉があれば '' hi''を含んでいるので '' hi'''という人とマッチします。 – Rob