2010-04-26 12 views
18

Existe-t-il un moyen d'utiliser la clause "NOT IN (select XXX ...)" dans Linq to Entities?
Toutes les questions que j'ai trouvés au sujet d'une liste d'objets (IN (1,2,3)) mais je veux générer une requête avec la syntaxe suivante:Clause "Select NOT IN" dans Linq to Entities

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

Soyez conscient que cela est LINQ to Entities et non Linq à Sql ...

Est-ce possible?

Merci!

Répondre

32

Comme ceci:

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

Enfin! Une réponse qui fonctionne bien, même sans EF4! Merci ! – thomasb

+0

@SLaks: Quel sera l'équivalent dans la syntaxe de la méthode? – FMFF

+4

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