LINQ запрос, где ID не существует как свойство в списке объектов

Мы можем иметь более одного оператора «IN» для одной и той же переменной.

Для ex:

select val
 from table
where val in (1,2,3,...)
or
val in (7,8,9,....)
0
задан MSOACC 17 January 2019 в 17:51
поделиться

1 ответ

Я перепишу вопрос

У меня есть список (someItems) объектов с числовыми идентификаторами. Я хочу запросить таблицу PurchasedItems в моей базе данных, чтобы получить все строки, где FK_ItemID не не соответствуют идентификатору любого из объектов в моем списке someItems.

Мой ответ:

List<Item> someItems = new List<Item>();
// Populate someItems
List<int> someItemIDs = someItems.Select(i=>i.ID).ToList();
var filtered = ctx.PurchasedItems
                  .Where(x => !someItemIDs.Contains(x.FK_ItemID))
                  .ToList();

Как указано в комментарии @juharr, EF не может работать с коллекцией не примитивных типов, потому что пытается преобразовать это в SQL. Вы можете сначала создать коллекцию someItemIDs.

0
ответ дан michael yin 17 January 2019 в 17:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: