Смешивание LINQ to SQL со свойствами объектов в общем списке - PullRequest
0 голосов
/ 19 мая 2010

Я пытаюсь выполнить что-то вроде этого запроса:

var query = from a in DatabaseTable
            where listOfObjects.Any(x => x.Id == a.Id)
            select a;

По сути, я хочу отфильтровать результаты, где a.Id равен свойству одного из объектов в общем списке "listOfObjects". Я получаю сообщение об ошибке «Локальная последовательность не может использоваться в реализации операторов запросов LINQ to SQL, кроме оператора Contains ()».

Любые идеи о том, как отфильтровать это легко читаемым способом, используя "содержит" или другой метод?

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 19 мая 2010

Просто спроецируйте свой локальный список в список определенных элементов, по которым вам нужно отфильтровать:

var listOfIds = listOfObjects.Select(o => o.Id);
var query = 
    from a in DatabaseTable
    where listOfIds.Contains(a.Id)
    select a;
2 голосов
/ 19 мая 2010
var listOfIds = listOfObjects.Select(x => x.Id).ToList();

var query = from a in DatabaseTable
            where listOfIds.Contains(a.Id)
            select a;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...