2011-06-10 3 views
3

J'ai des problèmes avec la création d'une requête LINQ avec les paramètres IN.
requête SQL correspondant estOpérateur SQL 'IN' dans LINQ to Entities

SELECT * FROM TABLEDEMO WHERE ID IN(SELECT ID FROM TABLE2) 

Comment puis-je obtenir la même chose en utilisant LINQ?
Je peux également prendre une variable de liste pour stocker plusieurs ID.

(from x in objEntity.TABLEDEMO 
where x.TABLEDEMO (here should be the in parameter) 
select x); 

Répondre

3

Vous devez utiliser Contains:

from x in objEntity.TABLEDEMO 
where objEntity.Table2.Contains(y => y.ID == x.ID) 
select x; 

Vous ne pouvez pas écrire ce tout autre, dire qu'il n'y a pas d'opérateur de style de requête, vous pouvez utilisation.

+0

erreur de fonctionnement au moment de la compilation lui-même :( – 1Mayur

1

Utilisez l'opérateur Any:

from x in objEntity.TABLEDEMO 
where otherQuery.Any(oq => oq == x.ID) 
select x 
3
from x in objEntity.Tabledemo 
where (from y in objEntity.table2 
     select ID).contains(x.ID) 
select x