Мы можем иметь более одного оператора «IN» для одной и той же переменной.
Для ex:
select val
from table
where val in (1,2,3,...)
or
val in (7,8,9,....)
Я перепишу вопрос
У меня есть список (
blockquote>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
.