我尝试创建一些linq查询,如下所示。
我有一张包含资源计划项目的表格。有一个列weekID和一个已部署的列。我想检查每周部署计划的数量是否不超过40小时。我需要在下面的linq查询中添加一些额外的过滤器,但我不知道如何:(有人可以告诉我如何将这些过滤器添加到当前的linq查询下面吗?
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/
答案 0 :(得分: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();