我对EF和LINQ有些新意,每当我超越基础时,我开始对如何处理更高级的查询感到困惑。
在我的示例中,我尝试返回与用户关联的频道列表,其中包括用户拥有的报告数量。我已经得到了下面的查询,但我仍然坚持如何包含报告计数...任何帮助将不胜感激。
var query = from c in _channelRepository.GetTable().Include("User")
where c.UserId == user.Id && c.IsActive == true
orderby c.Name
select c;
答案 0 :(得分: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(),
}