Я хочу сравнить значения внутри массива ids со значением ItemID в таблице ItemsOfCars. ItemsOfCars — это табличное отношение «многие ко многим».
Например, у меня есть значения 1,2,3,4,5 в ItemsOfCars. У меня есть значения 1, 2 в массиве с именем ids. Я хочу сравнить их и получить значения 3, 4, 5, которые находятся в массиве ItemsOfCars, но не в массиве ids.
[HttpPost]
public IActionResult GetItems(int[] ids)
{
foreach (var item in items)
{
item.ItemsOfCars.Where(x => x.ItemId == ids)
}
}
Сделать соединение Где использовать || (ИЛИ) или && (И). Вам не нужно два WHERE.
Где определяется items
? Каков его тип? ОТПРАВИТЬ ВАШ АКТУАЛЬНЫЙ КОД
Вам нужен оператор LINQ Except
.
попробуй это:
public IActionResult GetItems(int[] ids)
{
var items= ItemsOfCars.Where(i => !ids.Contains(i.ItemId));
}
Я не понимаю, зачем вам foreach (var item in items)? Не могли бы вы показать, где определены элементы?
Вызов Contains
для массива внутри цикла, как правило, не очень хорошая идея.
"но это не работает." - это не адекватное описание проблемы.