Проблема с запросом Linq - PullRequest
2 голосов
/ 07 мая 2010

У меня есть следующая информация

var details = Details.Where(d => d.isActive);

Я хотел бы запросить другую таблицу, Authorizations, которая имеет FK до Details, и получить сумму сумм полномочий, которые содержатся вdetails объект, сгруппированный по detail и FundCode.

Подробности (от 1 до многих) Полномочия

Кажется достаточно простым, однако явозникли проблемы.

Вот что у меня сейчас есть:

var account = (from sumOfAuths in Authorizations
               where details.Contains(sumOfAuths.Details)
                     && sumOfAuths.RequestStatusId == 2
               group sumOfAuths by new { sumOfAuths.Detail, sumOfAuths.FundCode } into child
               select new { 
                ....
                Amount = child.Amount 
               }).Sum()

Проблема в том, что внутри функции .Sum() у меня есть коллекция объектов, а не 1. Поэтому я могуНе суммируйте суммы правильно.

Ответы [ 2 ]

3 голосов
/ 07 мая 2010

Как правило, вы можете указать, что вы хотите суммировать:

.Sum(x => x.Amount)

В группах вы можете использовать вложенные суммы:

.Sum(x => x.Sum(y => y.Amount));
2 голосов
/ 07 мая 2010

Я полагаю, что этот запрос дает то, что вы ищете:

            var account = from c in Authorizations
                      where details.Contains(c.Details) && c.RequestStatusId == 2
                      group c by new { c.Detail, c.FundCode } into g
                      select new { Key = g.Key, Sum = g.Sum(x => x.Amount) };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...