2

从我从网上偷来的这个例子中:

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

例如,如果我想在 Employee_Car 的包含中使用 where 子句,我该怎么做?假设我只想让它检索蓝色汽车。

谢谢

4

2 回答 2

4

简短的回答是你不能仅仅通过使用包含来做到这一点。你需要做一些加入。因此,采取这篇技巧文章SO 答案,您可以按照这些思路做一些事情。(注意不是您的返回类型,而是最接近的)

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
                      };

(我确实对数据结构做了一些猜测,但想法就在那里。)

于 2012-08-23T20:53:15.833 回答
1

您不会这样做,因为 include 不支持过滤或排序。您必须执行两个单独的查询来加载公司和汽车及其过滤器。

于 2012-08-23T20:48:49.057 回答