Код: Выделить всё
ScheduleRateValues = g.SelectMany(x => x.Rate.R6Item.Schedule.ScheduleRateTypes.Select(srt => new
{
Code = srt.RateType.Code,
Quantity = x.Quantity,
LabourFactor = x.ScheduleMaterial.ProjectMaterialFactors
.Where(pmf => pmf.ProjectId == x.Rate.ProjectId)
.Select(pmf => pmf.LabourFactor)
.FirstOrDefault(),
MaterialFactor = x.ScheduleMaterial.ProjectMaterialFactors
.Where(pmf => pmf.ProjectId == x.Rate.ProjectId)
.Select(pmf => pmf.MaterialFactor)
.FirstOrDefault(),
x.ScheduleMaterial,
RateParts = x.Rate.RateParts
.Where(rp => rp.RateType.Code == srt.RateType.Code)
}))
.GroupBy(srt => srt.Code)
.Select(grp => new
{
RateType = grp.Key,
}),
Код: Выделить всё
RateParts = x.Rate.RateParts
.Where(rp => rp.RateType.Code == srt.RateType.Code)
"Объект, допускающий значение NULL, должен иметь значение".
Не каждый код из типов тарифов расписания будет иметь что-то совпадающее с частями тарифа. Весь смысл в том, что, когда есть тот, который соответствует, я могу затем выполнить некоторые вычисления для значения, а если это не так, значение, которое будет присвоено коду, равно 0, но я изо всех сил пытаюсь найти лучшее способ сделать это
Подробнее здесь: https://stackoverflow.com/questions/791 ... ve-a-value