2010-04-26 14 views
18

¿Existe alguna manera de utilizar la cláusula "NOT IN (seleccionar XXX ...)" en Linq para entidades?
Todas las preguntas que encontré eran sobre una lista de objetos (IN (1,2,3)) pero quiero generar una consulta con la siguiente sintaxis:Cláusula "Select NOT IN" en Linq para Entidades

select * from table1 where field1 not in (select subfield from subtable) 

Tenga en cuenta que este es LINQ a Entidades y no Linq a Sql ...

¿Es posible?

Gracias!

Respuesta

32

De esta manera:

from c in db.Customers 
where !db.Products.Any(p => p.ProductID == c.ProductID) 
select c; 
+0

Finalmente! Una respuesta que funciona genial, ¡incluso sin EF4! Gracias ! – thomasb

+0

@SLaks: ¿Cuál será el equivalente en la sintaxis del Método? – FMFF

+4

@FMFF: 'db.Customers.Where (c =>! Db.Products.Any (...))' – SLaks