2012-10-09 15 views
-1

我嘗試創建一些linq查詢,如下所示。Linq查詢與列的計數過濾器

我有一個資源計劃項目表。有一個列weekID和一個列deployedPlanning。我想檢查一下每週的部署計劃數是否不超過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

'weekID'和'deployedPlanning'如何與'resourcePlanning'相關?它們是你的'rp'對象的屬性嗎?什麼類型的列?我不明白你想要做什麼。 –

回答

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(); 
+0

謝謝。這是我尋找的地方:D – Ola