Wie Schreibe ich SELECT FROM myTable WHERE id IN (SELECT...) in Linq?
-
09-06-2019 - |
Frage
Wie Sie diese umschreiben in Linq?
SELECT Id, Name FROM TableA WHERE TableA.Id IN (SELECT xx from TableB INNER JOIN Table C....)
Also im Klartext, ich möchten wählen Sie die Id und den Namen aus TableA where TableA-Id ist in ein ResultSet aus einer zweiten Abfrage.
Lösung
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 }
Andere Tipps
LINQ unterstützt, IN form von enthält.Denken " - Kollektion.Enthält(id)" anstelle von "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 }
Siehe auch dieser blog post.
Es gibt keine out-of-box-Unterstützung für LINQ.Sie müssen sich 2 Abfragen.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow