テーブルの 1 つをフィルタリングしながら、2 つのテーブルを結合したいと考えています。それはうまくいきます
var matching = from a in ctx.A
join b in ctx.B on a.BId equals b.Id
where idList.Contains(b.Id)
select a;
ただし、intoキーワードを使用して結合結果に名前を付けると
var matching = from a in ctx.A
join b in ctx.B on a.BId equals b.Id into c
where idList.Contains(b.Id)
select a;
コンパイラ エラーが表示される
名前 'b' は現在のコンテキストに存在しません
ただし、aその時点で 'c' と同様に問題なく参照できます。
なぜそれが正確なのか、どのようにwhere句をに適用できますbか?