transact - linq to sql vs entity framework
¿Cómo escribo SELECT FROM myTable WHERE id IN(SELECT...) en Linq? (3)
¿Cómo reescribes esto en Linq?
SELECT Id, Name FROM TableA WHERE TableA.Id IN (SELECT xx from TableB INNER JOIN Table C....)
Por lo tanto, en inglés sencillo, quiero seleccionar Id y Name de TableA donde TableA''s Id está en un conjunto de resultados de una segunda consulta.
LINQ admite IN en forma de contiene. Piensa "collection.Contains (id)" en lugar de "id IN (colección)".
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 }
Ver también esta publicación en el blog.
No hay soporte fuera de la caja para IN en LINQ. Necesitas unir 2 consultas.
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 }