私は、LINQを使用して、さまざまな量のOR句を含むSQLクエリを作成する必要があるシナリオを持っています。私はいくつかの入力に基づいてクエリを構築する関数を書いています。関数定義は、私が真かどうかを確認する必要がある列のコレクションを与えてる、だから... ...LINQを使用してOR句を連結する方法は?
function BuildQuery(ICollection<ColumnsThatNeedToBeTrue> columns)
{
...
}
をに似た何かを見て、チェックがOR
句を使用する必要があります。
columns
配列がA
とB
が含まれている場合、私は列A
が真または列B
が真であるかどうかをチェックするクエリを必要があると思います。
columns
配列はA
、B
とC
が含まれている場合、私はA
OR B
OR C
に該当する場合に照会して確認する必要があると思います。
||
句を徐々に追加する方法がわからないため、これをすべて1つのWhere
で行う方法はわかりません。入力配列に基づいて、以下に追加のORチェックをどのように含めるかはわかりません。それはAND
句を使用して、そのクエリを構築しているため
var query = entities.Where(m => m.A == true || m.B == true ...)
私はチェーンWhere
機能は、自分のカラムのチェックのために、それぞれが、私はOR
を必要とすることはできません。
LINQを使用して、このようなクエリを作成する方法はありますか?
'In'句? http://stackoverflow.com/questions/959752/where-in-clause-in-linq –
「UNION」が役立つかもしれませんか? –
SQLではこれらのものがすべて個別の列であるため、動作しないと思います。私のEFエンティティクラスでは、これらの列は各列の 'bool'プロパティとして表されます。私の関数への入力として、どの列が真であるかを示す 'enum'の配列が与えられています。比較するための実際の配列はありません - 個々のboolカラム/プロパティだけです。 – Ryan