来自我从网上偷走的这个例子:
Company company = context.Companies
.Include("Employee.Employee_Car")
.Include("Employee.Employee_Country")
.FirstOrDefault(c => c.Id == companyID);
如果我想在Employee_Car的包含中使用where子句,我该怎么做?说我只想要它来检索蓝色汽车。
由于
答案 0 :(得分:4)
简短的回答是你不能仅仅通过使用include来做到这一点。你需要做一些加入。 因此,使用此tip post和SO 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
};
(我确实对数据结构做了一些猜测,但想法就在那里。)
答案 1 :(得分:1)
您不会这样做,因为include不支持过滤或排序。您必须执行两个单独的查询,以使用其过滤器加载公司和汽车。