Linq группировка и проекция запроса - PullRequest
0 голосов
/ 22 октября 2011

У меня есть класс EF "Call", в котором есть дата, номер телефона, имя звонящего и стоимость звонка.

Моя цель - сгруппировать звонки по номеру телефона, суммировать общую стоимость и взять результаты 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);

1 Ответ

0 голосов
/ 22 октября 2011

Вам также нужна группа на 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...