1

複数の変数を単一の文字列と比較できる LINQ クエリを実行したいと考えています。配列要素の LIKE クエリの LINQ を見たことがありますが、これは役に立ちますが、完全ではありません。逆が必要です。

私がやりたいことは次のとおりです。 と の両方を持つCompanyオブジェクトがあるとしましょう。私も文字列を持っています。次に、リスト内のすべての を検索したいと思います。SQLでは...NameAddresskeywordCompanykeywordNameAddress

SELECT * FROM Company
WHERE Name LIKE '%keyword%' OR Address LIKE '%keyword%'

私は Entity Framework を使用しており、次のことを試しました: context.Companies.Where(x => new string[] { x.Name, x.Address }.Contains(keyword)、およびcontext.Companies.Where(x => new string[] { x.Name, x.Address }.Any(r => r.Contains(keyword))、どちらも成功しませんでした。最初のものは私にIN句を与え、2番目のものは...私はそれが何をするのかわかりませんが、それは私が望むものを私に与えません.

申し訳ありませんが、式については (まだ) 深く理解していません。独自のカスタム Expressions をゼロから作成できればよかったのですが、スクラッチすることはまだできません... 誰か助けてくれませんか?

4

1 に答える 1

6

||演算子を使用しない理由はありますか?

context.Companies.Where(x => x.Name.Contains(keyword) || 
                             x.Address.Contains(keyword))

これが元の SQL に変換されることを期待しています。

于 2012-11-28T07:17:48.437 に答える