visual transact studio online framework convert consultas conexion sql linq linq-to-sql

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 }