如何计算数据库表中的Backers数量

时间:2014-12-22 19:41:11

标签: c# entity-framework lambda

我有这个Lambda表达式,它返回一个包含相关服务,支持者和订单的广告系列列表。

我需要获得广告系列的支持者总数。每个广告系列都可以拥有多项服务,每项服务都可以拥有多个支持者

我目前的代码:

Campaign campaign = db.Campaigns.Include(c => 
                          c.Services.Select(s => 
                              s.Orders.Select(o => o.Backers)))
                      .Where(c => c.CampaignID == id)
                      .SingleOrDefault();

2 个答案:

答案 0 :(得分:1)

  • Campaigns有很多Services
  • Services有一个属性Orders
  • Orders有很多Backers

我正在看到什么。所以:

int count = db.Campaigns.Find(id)
                          .Services
                            .SelectMany(s => s.Orders.Backers)
                            .Count();

答案 1 :(得分:0)

int totalBackers = campaign.Services.SelectMany(x => x.Orders.Select(y => y.Backers.Count)).Sum();