2012-08-23 85 views
2

從這個例子,我從網上偷:EF凡的條款包括

Company company = context.Companies 
        .Include("Employee.Employee_Car") 
        .Include("Employee.Employee_Country") 
        .FirstOrDefault(c => c.Id == companyID); 

,如果我想在where子句中包括Employee_Car的,例如,我該怎麼辦呢?假設我只想要它檢索藍色汽車。

謝謝

回答

4

簡短的答案是你不能只通過使用包括。你需要做一些加入。 所以採取這個tip postSO answer你可以做這樣的事情。 (注意:不完全是你的返回類型,但最近的)

var companyBlueCars = from company in context.Companies 
         where company.Id == companyID 
         select new 
         { 
          company, 
          blueCars = from employee in company.Employees 
            where employee.Employee_Car.Colour == "blue" 
            select employee.Employee_Car 
         }; 

(我做了一對夫婦猜測有關數據結構,但這個想法是存在的。)

+0

這很酷,我借用了另一個問題的例子在這裏因爲它可能比我的財務建模更有意義:)感謝您的幫助:) – Ian

1

你不會這麼做,因爲include不支持過濾或排序。您必須執行兩個單獨的查詢以使用其過濾器加載公司和汽車。