有没有办法让一个LINQ查询根据不同的计数条件包含两个不同的计数?例如,假设我想查询“收件箱”以获取存在的邮件总数的计数,以及每个收件箱中未读的所有邮件的另一个计数。
所以这是我正在寻找的结果......
NAME未读TOTAL
gbush 10 20
bobama 30 100
这可以在一个查询中完成,还是需要两个查询?
以下是我必须计算的未读物品数量,但我在哪里/如何获得总物品?
var results = from message in context.inbox
where message.Status = "UNREAD"
group message by message.Name into g
select new { Name = g.Key, Unread = g.Count() };
答案 0 :(得分:3)
您可以使用接受谓词的Count
重载:
var results = from message in context.inbox
group message by message.Name into g
select new
{
Name = g.Key,
Unread = g.Count(m => m.Status == "UNREAD"),
Total = g.Count()
};