8

これをLinqでどのように書き換えますか?

SELECT Id, Name FROM TableA WHERE TableA.Id IN (SELECT xx from TableB INNER JOIN Table C....)

したがって、平易な英語では、TableA の Id が 2 番目のクエリの結果セットにある TableA から Id と Name を選択したいと考えています。

4

3 に答える 3

10
from a in TableA 
where (from b in TableB 
       join c in TableC on b.id equals c.id
       where .. select b.id)
.Contains(a.Id) 
select new { a.Id, a.Name }
于 2008-09-05T12:27:28.647 に答える
4

LINQ は、contains の形式で IN をサポートしています。「id IN (コレクション)」ではなく、「collection.Contains(id)」と考えてください。

from a in TableA
where (
    from b in TableB
    join c in TableC
        on b.id equals c.id
    select b.id
).Contains(TableA.Id)
select new { a.Id, a.Name }

このブログ投稿も参照してください。

于 2008-09-17T18:36:45.430 に答える
1

LINQ には、すぐに使用できる IN のサポートはありません。2 つのクエリを結合する必要があります。

于 2008-09-05T12:27:32.140 に答える