Linq选择子项没有关联子项的对象

时间:2014-04-07 11:06:49

标签: c# linq

具有以下层次结构:

AvailabilityCounts可以有许多MemberCounts 每个MemberCount可以有一个预订

我需要一个linq语句,它将选择所有至少有一个没有关联预订的子MemberCount的AvailabilityCounts。

我到目前为止:

var test = rep.AvailabilityCounts_Get()
          .Where(a => a.MemberCounts
                .Where(m => m.Bookings.Any())
          .Count() > 0);

当AvailabilityCount具有多个MemberCounts时,此方法有效,但当只有一个MemberCount时,结果会产生相反的结果。

为使用其他人的大脑来完成我的工作而道歉,但很难看到其中的逻辑。

2 个答案:

答案 0 :(得分:1)

我会说Any()和Any()应该做你想要的。

rep.AvailabilityCounts_Get.Where(m => m.MemberCounts.Any(x => !x.Bookings.Any());

答案 1 :(得分:1)

试试这个:

var test = rep.AvailabilityCounts_Get().Where(a => a.MemberCounts
                                                    .Any(m => !m.Bookings.Any()));