【发布时间】:2018-01-11 18:40:37
【问题描述】:
我正在尝试过滤实体框架中的对象中的集合。我遵循this 示例,这是有道理的。
这是我的查询结果:
var filteredClientEmp = context.Clients.Include(x => x.CompanyEmployee)
.Where(c => c.HrPersonId == paId && c.CompanyEmployee.Any(e => e.EmployeeBirthday != null && e.EmpType == 2 &&
e.LeftCompany == null))
.Select(c => new
{
c,
CompanyEmployee =
c.CompanyEmployee.Where(e => e.EmployeeBirthday != null && e.EmpType == 2 &&
e.LeftCompany == null)
})
.ToList()
.Select(pro => pro.c)
.ToList();
return filteredClientEmp;
但是,当我检查 filteredClientEmp 对象时,它包含没有生日的员工以及左侧公司值不等于 null 的记录。
Client 对象有一个Employee 的非虚拟列表:
public List<Employee> CompanyEmployee { get; set; }
为什么这个过滤不起作用?
【问题讨论】:
-
context是否干净 (new)?这是什么 EF 版本? -
所以这可能是 ef-core 并且
Include是可操作的,因为完整的Client是投影的一部分。 -
这是 EF Core 对不起,上下文是干净和新的
标签: c# entity-framework