使用 linq (EF dbcontext),我需要一个语句来过滤强类型的 IEnumerable 父实体集合中每个父实体的子实体集合。
示例:
我有 4 家酒店,每家酒店全年都有多个房间预订。然而,在 6 月份,一 (1) 家酒店没有任何预订 (reservation.Count=0),但其他三家酒店各有多个预订。
问题:
尝试#1:IEnumerable(hotel) HotelList = (from hotels in context.Hotels select hotels).ToList();
如果没有“where”子句(过滤器),我会得到 IEnumerable(hotel) HotelList 4 家酒店的集合和 IEnumerable(reservation) ReservationList 数据库中所有预订的集合(我只想要那些在六月的)!
尝试#2:IEnumerable(reservation) ReservationList = (from reservations in context.Reservations where reservations.reservation_date_month == 'June' select reservations).ToList();
如果我仅筛选 6 月的预订日期,我的酒店数量是 3 而不是 4。
问题:
我需要一个 linq 语句来选择“父”酒店集合并过滤“子”预订集合以仅包含 6 月份的预订(记住一家酒店在 6 月份没有预订)。
预期结果:
结果应该是父 IEnumerable(hotel) HotelList 集合(包括所有 4 个酒店实体)和子 IEnumerable(reservation) ReservationList 集合,其中列出了每个酒店实体 6 月的所有预订,但一 (1) 家酒店将有reservations.Count = 0(即没有保留实体)。
谢谢-jd