使用linq在列表中搜索数据

时间:2015-04-07 20:52:20

标签: c# linq

我有一个lotItemIds (lotItemIdList)的int列表。从BookingItems开始,我只想选择BookingItems列表中不存在BookingItemId的{​​{1}}个。{/ p>

我写了一个表达式如下:

lotItemIds

但这是选择所有项目,即使这些项目存在于 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)));

2 个答案:

答案 0 :(得分:1)

好的,所以你想要预订本身,然后你就在正确的轨道上,尽管你似乎根据你的描述做了一些不必要的事情。这应该有效:

var bookings = context.Bookings
                      .Where(b => b.BookingItems
                                   .Any(bi => !lotItemIdList.Contains(bi => bi.BookingItemId)));

您的所有预订都在任何一个预订的地方。 BookingItems的Id不在列表中。

答案 1 :(得分:0)

根据您的描述,这就是您想要的:

var bookingItems = context.Bookings.Where(b => !lotItemIdList.Contains(b.BookingItemId));