导航为空时linq查询异常

时间:2014-05-12 15:09:40

标签: telerik-open-access

健身中心管理软件我有3个表: 客户,订阅,会议

  • 客户订阅表之间存在一对多的关系
  • 订阅会话
  • 之间存在1对多的关系

现在我想显示一个会话数量的客户列表: 这个查询给了我一个例外

var query = _context.CUSTOMERs.Select(c => new
{
adh = c,
cnt =      c.SUBSCRIPTIONs.OrderByDescending(s=>s.SUB_START_DATE).FirstOrDefault().SESSIONs.Count
});

我的猜测是因为有些客户还没有订阅。

其次:什么是Defaultifempty运算符,它可以帮助我在这种情况下 感谢您的帮助和美好的一天

1 个答案:

答案 0 :(得分:0)

您可以使用SelectMany获取计数

_context.CUSTOMERs.Select(c=> new { Customer = c, 
          SessionCount = c.SelectMany(c=>c.SUBSCRIPTIONs)
                          .SelectMany(su=>su.SESSIONs).Distinct().Count()})

这将为您提供所有会议,因为它似乎是您想要的