Linq分组和投影查询
问题描述:
我有一个EF“呼叫”类,它有一个日期,电话号码,来电者姓名和通话费用。Linq分组和投影查询
我的目标是按电话号码对呼叫进行分组,并总计总成本,并将40个最昂贵的呼叫的结果。我有所有这些工作,但我有投影的麻烦,我如何获得来电者姓名?
var query =
(
from call in model.Calls
group call by call.TelephoneNumber into g
orderby g.Sum(gr => gr.ActualCost) descending
select new
{
TelephoneNumber = g.Key,
CallerName = ???
Cost = (g.Sum(gr => gr.ActualCost)),
TotalNumbers = g.Count(),
}
).Take(40);
答
您需要在CallerName也组:
var query =
(from call in model.Calls
group call by new { call.TelephoneNumber, call.CallerName } into g
orderby g.Sum(gr => gr.ActualCost) descending
select new
{
TelephoneNumber = g.Key.TelephoneNumber,
CallerName = g.Key.CallerName,
Cost = (g.Sum(gr => gr.ActualCost)),
TotalNumbers = g.Count(),
}).Take(40);
非常感谢你的帮助!很简单! – Trevor