Почему-то при использовании двух сумм в группе я сталкиваюсь с ошибкой "недопустимое имя столбца 'id'. Когда я делаю только одну сумму, она работает как ожидалось.
Следующее завершается с ошибкой и выдает ошибку:
from pd in PrDetails.Where(_pd => _pd.PrId == 46)
group pd by new { pd.ProgramFund, pd.ProjectDetail.CostCenter, pd.ProjectDetail.Wbs }
into g
select new
{
g.Key.ProgramFund,
g.Key.CostCenter,
g.Key.Wbs,
CommittedTotal = g.Sum(_pd => _pd.PrDetailPrAmounts.Sum(_pa => _pa.CommittedAmount)),
OverheadTotal = g.Sum(_pd => _pd.PrDetailPrAmounts.Sum(_pa => _pa.OverheadAmount))
}
Однако следующее прекрасно работает :
from pd in PrDetails.Where(_pd => _pd.PrId == 46)
group pd by new { pd.ProgramFund, pd.ProjectDetail.CostCenter, pd.ProjectDetail.Wbs }
into g
select new
{
g.Key.ProgramFund,
g.Key.CostCenter,
g.Key.Wbs,
CommittedTotal = g.Sum(_pd => _pd.PrDetailPrAmounts.Sum(_pa => _pa.CommittedAmount))
}
А также , когда я получаю общую сумму накладных расходов вместо зафиксированной общей суммы, она прекрасно работает:
from pd in PrDetails.Where(_pd => _pd.PrId == 46)
group pd by new { pd.ProgramFund, pd.ProjectDetail.CostCenter, pd.ProjectDetail.Wbs }
into g
select new
{
g.Key.ProgramFund,
g.Key.CostCenter,
g.Key.Wbs,
OverheadTotal = g.Sum(_pd => _pd.PrDetailPrAmounts.Sum(_pa => _pa.OverheadAmount))
}
Почему я не могу получить зафиксированную сумму и общую сумму накладных расходов одновременно?
У меня есть наша базовая структура таблицы ниже:
PrDetails
Id (int)
PrId (int)
ProgramFund (класс linq)
ProjectDetail (класс linq)
ProjectDetails
Id (int)
CostCenter (класс linq)
Wbs (класс linq)
PrAmounts
Id (int)
PrDetailId (int)
CommittedAmount (десятичное число)
Накладные расходы (десятичные)