Linq Sum для нескольких соединений - PullRequest
0 голосов
/ 08 февраля 2010

Может кто-нибудь помочь мне со следующим утверждением Linq? Я пытаюсь соединить 4 таблицы через Linq, сгруппировать по последней таблице и суммировать свойство первой.

var payments = (
                from payment in db.Payments
                join payees in db.cmsMembers on payment.PayeeID equals payees.nodeId
                join payeeGroups in db.cmsMember2MemberGroups on payees.nodeId equals payeeGroups.Member
                join groups in db.umbracoNodes on payeeGroups.MemberGroup equals groups.id
                group groups by new {groups.text, payment} into groupedPayments
                select new
                {
                    Group = groupedPayments.Key.text,
                    Count = groupedPayments.Count(),
                    Amount = groupedPayments.Sum(?)
                }
            ).ToList();

У меня проблема в том, что при вызове groupedPayments.Sum (..) я получаю доступ только к объекту «groups». Это хорошо для аспекта Имя группы и количество, но SUM должно быть выполнено для свойства payment.Amount.

1 Ответ

1 голос
/ 11 февраля 2010

Мне удалось решить мою проблему. Я не понимал, что объект в объявлении группы станет фактическим объектом в результирующем элементе группы. Изменив исходное утверждение на следующее:

group payment by groups into groupedPayments

кажется, что каждый экземпляр groupedPayments.Key в операторе выбора теперь соответствует строке платежа, что мне и требовалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...