1

我对 EF 和 LINQ 有点陌生,每次我超越基础知识时,我都会开始对如何处理更高级的查询感到困惑。

在此处输入图像描述

在我的示例中,我试图返回与用户关联的频道列表,其中包括该用户拥有的报告数量。我已经了解了下面的查询,但我一直坚持如何包含报告计数......任何帮助将不胜感激。

 var query = from c in _channelRepository.GetTable().Include("User")
                    where c.UserId == user.Id && c.IsActive == true
                    orderby c.Name
                    select c;
4

1 回答 1

1

您可以通过创建具有所有所需属性的新类 (POCO) 来完成此操作。

例如

public class ChannelsWithCount
{
  public Channel Channel { get; set; }
  public User User { get; set; }
  public int? ReportsCount { get; set; }
}

var query = from c in _channelRepository.GetTable()
            where c.UserId == user.Id && c.IsActive == true
            orderby c.Name
            select new ChannelsWithCount
            {
               Channel = c,
               User = c.User,
               ReportsCount = c.User.Reports.Count(),
            }
于 2012-04-26T15:46:17.927 回答