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