10.000回(現実的な数値)同じクエリを呼び出さないようにしてクエリ呼び出しを最適化したい。C#Linq multi OR
var myObject= _db.myObject.FirstOrDefault(x => x.property1 == param1 && x.property2 == param2 && x.property3 == 3);
だから私は
は、関数にmyOtherObjectのリストを渡すことができます思いました。 myOtherObjectには通常param1,2および3を満たすフィールドが含まれます。
通常のクエリでは、foreach内に文字列を作成して連結します。このように:
// WHERE (property1 = param1 && property2 = param2 && property3 = param3) OR (property1 = param1 && property2 = param2 && property3 = param3) OR (property1 = param1 && property2 = param2 && property3 = param3)
どのようにして(可能な場合)LINQで達成できますか。 が、それは、複数の論理和に
をCONCATすることは可能です勿論、私はいずれかと連結を試み、それが作成し、ステートメント(論理的に)ので、どこだが、それdidntの仕事試してみました。
コンテキスト
私は自分のデータベース内のオブジェクトをしました。私はデータベース内の別のオブジェクトと比較する必要があります。私は読み取り専用のアクセス権しか持っていません。私は3つのパラメータの組み合わせで2つのオブジェクトを一致させることができます。
INPUT
一覧
(一致させるために必要な3つのフィールドを持っている)をObjectAのOUTPUT
私はをしたい他の(読み込み専用)データベースから一致するオブジェクトのリストを返します。
DBにパラメータ化されたストアドプロシージャを作成して使用しないのはなぜですか?これは完璧なユースケースです。 – Robert
私はこのデータベースからしか読むことができません。ストアドプロシージャが受け入れられるかどうかはわかりません。アイデアありがとう! – JochemQuery
申し訳ありませんが、出力として何を入力しているかはわかりませんが、入力した内容に常に焦点を当ててみてください。 –