Как получить сумму значений детей на одном LINQ - PullRequest
0 голосов
/ 17 февраля 2012

У меня есть такая структура:

Программа - Описание и т.д ...

Действие - Program_Id, описание и т. Д.

Стоимость - Action_Id, Value1, Value2, Value3

Один Действие может иметь несколько Стоимость . Что мне нужно, это запрос, который группирует эти значения по программе. Как:

«Название программы» | Общая стоимость1 | Общая стоимость 2 | Всего по программе

Пока это мое усилие:

var ListByPrograma = from a in db.Actions
    join c in db.Costs on a.Id equals c.Action_Id
    group a by a.Program into p
    select new 
    {
        Program = p.Key,
        actionsQuantity = p.Count(),
        totalValue1 = p.Costs.????
        totalValue2 = ?,
        totalByProgram = ?
    };

1 Ответ

2 голосов
/ 17 февраля 2012

Работает ли что-то подобное?

var ListByPrograma  = from a in db.Actions
 join c in db.Costs on a.ID equals c.Action_Id
 group new {a,c} by a.Program into p
 select new
 {
    Program = p.Key,
    actionsQty = p.Count ( ),
    totalValue1 = p.Sum(y => y.c.Value1),
    totalValue2 = p.Sum (y => y.c.Value2),
    totalValue3 = p.Sum(y=>y.c.Value3)
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...