親子テーブルの関係があります。下の例では、Fooには親レコードを指すFooIDとnull可能なParentFooIDがあります。LINQの条件付き結合
バーテーブルは常に親レコードにリンクされています。これは結果を得るために使用するSQLです。
Select * from Foo f
JOIN Bar b
ON b.FooID =
CASE
WHEN f.ParentFooID is null
THEN f.FooID
ELSE f.ParentFooID
END
これをLINQクエリに変換するのに問題があります。私はクロスには、次のように参加しないようしたいと思います:
var q = from f in Foo
from b in Bar
where b.FooID == (f.ParentFooID ?? f.FooID)
乾杯、
ダニエル
私はシナリオからのプロファイリングを行っています。はい、それはインデックススキャンを行います(シークではありません)ので、元のクエリよりも悪化しますインデックスシーク。 – Spruce
少なくとも、価値のあるテスト。 –