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.

War es hilfreich?

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
scroll top