У меня есть int Список лотовItemIds (lotItemIdList)
. От BookingItems
Я хочу выбрать только такие BookingItems
, чьи BookingItemId
нет в списке lotItemIds
.Поиск данных в списке с использованием linq
Я написал выражение, как показано ниже:
var Booking = context.Bookings.Include(x => x.BookingItems.Select(y => y.LotItem))
.FirstOrDefault(x => x.BookingId == BookingId
&& x.BookingItems.Any(y => !lotItemIdList.Contains(y.BookingItemId)));
Но это выбрать все элементы, даже если таковые присутствуют в lotItemIdList
.
Можете ли вы предоставить структуру своих объектов? Похоже, что 'Booking' имеет несколько' BookingItems'? Кроме того, просто для подтверждения, вы пытаетесь вернуть 'BookingItems', чей' BookingItemId' отсутствует в 'lotItemIds'; или вы пытаетесь вернуть «Заказы», которые имеют «BookingItems», которых нет в 'lotItemIds'? – Tim
ваше понимание верное. Я пытаюсь вернуть 'Bookings', у которых есть' BookingItems', которых нет в 'lotItemIds' –
Думая об этом еще немного ... вы говорите« это выбор всех элементов ... », но вы звоните 'FirstOrDefault' - поэтому он может возвращать только нуль или один. Вы имели в виду, что он возвращает все Бронирование (как свойство возвращенного бронирования), даже те, которые не совпадают? – Tim