Оператор SQL IN в LINQ to Entities - PullRequest
3 голосов
/ 10 июня 2011

У меня проблемы с созданием запроса LINQ с параметрами IN.
Соответствующий SQL-запрос

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

Как мне добиться того же с помощью LINQ?
Я также могувозьмите переменную списка для хранения нескольких идентификаторов.

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

Ответы [ 3 ]

3 голосов
/ 10 июня 2011

Вам нужно использовать Contains:

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

Вы не можете писать это как-либо иначе, т. Е. Вы не можете использовать оператор стиля запроса.

3 голосов
/ 10 июня 2011
from x in objEntity.Tabledemo
where (from y in objEntity.table2
       select ID).contains(x.ID)
select x
1 голос
/ 10 июня 2011

Используйте оператор Any:

from x in objEntity.TABLEDEMO
where otherQuery.Any(oq => oq == x.ID)
select x
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...