Come scrivo SELECT FROM myTable WHERE id IN (SELECT...) in Linq?
-
09-06-2019 - |
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.
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