具有列计数筛选器的Linq查询

具有列计数筛选器的Linq查询,linq,filter,count,where,Linq,Filter,Count,Where,我尝试创建一些linq查询,如下所示 我有一张资源计划表。有一个专栏weekID和一个专栏deployedPlanning。我想检查每周部署的计划数是否不超过40小时。我需要在下面的linq查询中添加一些额外的where过滤器,但我不知道如何添加:(有人能告诉我如何在下面的当前linq查询中添加这些where过滤器吗 var resourcePlanning = new ResourcePlanningManager().Repository.Find( rp =

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

我有一张资源计划表。有一个专栏weekID和一个专栏deployedPlanning。我想检查每周部署的计划数是否不超过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!
            }
var resourcePlanning=new ResourcePlanningManager().Repository.Find(
rp=>rp.EmployeeID==employeeRosterPeriod.EmployeeID&&
rp.PlanDate>=雇员后期限.DATEFORM&&

rp.PlanDate我不确定我是否理解你的要求,但听起来像:

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();
var resourcePlanning=new ResourcePlanningManager().Repository.Find(
rp=>rp.EmployeeID==employeeRosterPeriod.EmployeeID&&
rp.PlanDate>=雇员后期限.DATEFORM&&
rp.PlanDate rp.weekID)
其中(g=>g.Sum(rp=>rp.deployedPlanning)>40)
.FirstOrDefault();

weekID
deployedPlanning
resourcePlanning
有什么关系?它们是
rp
对象上的属性吗?列是什么类型的?我不明白你想做什么。谢谢。这就是我要找的:D