-1

我尝试创建一些 linq 查询,如下所示。

我有一张包含资源计划项目的表格。有一列 weekID 和一列 deployPlanning。我想检查每周部署计划的计数是否不超过 40 小时。我需要在下面的 linq 查询中添加一些额外的 where 过滤器,但我不知道如何:( 有人可以告诉我如何在下面的当前 linq 查询中添加这些 where 过滤器吗?

var resourcePlanning = new ResourcePlanningManager().Repository.Find(
                rp => rp.EmployeeID == employeeRosterPeriod.EmployeeID &&
                      rp.PlanDate >= employeeRosterPeriod.DateFrom &&
                      rp.PlanDate <= employeeRosterPeriod.DateTo).FirstOrDefault();
            if (resourcePlanning != null)
            {
               // throw excetoption. There are more than 40 hours planned in 1 or more weeks in this range!
            }

例如,在第 40 周,总共有 24 个 DeployedPlanned 小时。这不高于40,所以没关系。

http://imageshack.us/photo/my-images/513/tableresourceplanning.png/

4

1 回答 1

0

我不确定我是否理解您的要求,但听起来像:

var resourcePlanning = new ResourcePlanningManager().Repository.Find(
            rp => rp.EmployeeID == employeeRosterPeriod.EmployeeID &&
                  rp.PlanDate >= employeeRosterPeriod.DateFrom &&
                  rp.PlanDate <= employeeRosterPeriod.DateTo
        )
        .GroupBy(rp => rp.weekID)
        .Where(g => g.Sum(rp => rp.deployedPlanning) > 40)
        .FirstOrDefault();
于 2012-10-09T16:21:40.767 回答