我有一个雇主实体,雇主有0个或更多雇员。我希望加载雇主(Id = 16),这样它的员工导航属性只列出说英语的人。所以我这样做:
_uow.EmployerRepository.FirstOrDefault (
o => o.Id == 16
&& o.Employees.Any(a => a.Language == "english"),
"Employees");
显然,“任何”意味着“如果任何员工符合您的条件,则返回所有员工记录”。使用此代码,我的雇主将填充其所有员工,只要其中任何一个员工的语言设置为“英语”。
如何更改过滤器,以便Employees导航属性仅填充其Language属性为“english”的Employees?
答案 0 :(得分:2)
这看起来像是一个两步过程,而不是一个过程。
从数据库中获取您的雇主。
现在从Employer.Employees
获取所有讲英语的员工。
您可以采用的另一种方法是仅搜索员工而不是雇主
我不确定你的结构究竟是什么,但你可能会做这样的事情:
_uow.EmployeeRepository.Where(x => x.EmployerId = 16 && x.Language == "english")