SUM 2列嵌套在实体框架中的对象

本文关键字:对象 框架 实体 2列 嵌套 SUM | 更新日期: 2023-09-27 17:58:32

以下是模型的链接方式:项目可以有多个任务,任务可能有多个时间簿。tasktimes上有taskhours和员工员工有标准成本。

我目前正在计算所有任务的成本总和,方法是循环每个任务,然后乘以我需要的2列,然后求和。

public decimal CalculateCost(IEnumerable<Task> tasks)
{
    decimal total = 0.0M;
    foreach (var task in tasks)
    {
        var cost = from d in task.TaskTimes
               select new { total = d.Employee.StandardCost * d.TaskHours };
        total = cost.Sum(d => d.total);
    }           
    return total;
}

肯定有比foreach循环更好的方法,但我似乎找不到语法。有没有更有效的方法,或者是这样做的方法?

感谢:)

SUM 2列嵌套在实体框架中的对象

尝试使用SelectMany()

var total = tasks.SelectMany(x => x.TaskTimes)
                 .Sum(d => d.Employee.StandardCost * d.TaskHours);