Domanda

Come lo riscrivi in ​​Linq?

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

Quindi, in parole povere, voglio selezionare Id e Nome dalla TabellaA dove l'ID della TabellaA si trova in un set di risultati da una seconda query.

È stato utile?

Soluzione

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 }

Altri suggerimenti

LINQ supporta IN sotto forma di contiene.Pensa a "collection.Contains(id)" invece di "id IN (collection)".

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 }

Vedi anche questo blog inviare.

Non è disponibile alcun supporto predefinito per IN in LINQ.Devi unire 2 query.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top