实体框架集合到列表

本文关键字:列表 集合 框架 实体 | 更新日期: 2023-09-27 18:11:41

我想做这样的事情:

 List<Department> t = db.Employees
        .Where(e => e.CompanyId.Equals(12345))
        .Where(e => e.Departments.Any(d => d.IsActive.Equals(true)))
        .Select(e => e.Departments);

但是它给了我一个错误告诉我不能隐式地从IQueryable<ICollection<Department>> to List<Department>转换。

我的Linq有点生疏了。什么是正确的方法来把它降到List<Department>

实体框架集合到列表

您有一个部门集合的可查询集合(注意复数形式的e.Departments)。因此,您可以使用.SelectMany()来平化您的集合,然后使用.ToList()来解析IQueryable。

List<Department> t = db.Employees
    .Where(e => e.CompanyId.Equals(12345))
    .Where(e => e.Departments.Any(d => d.IsActive.Equals(true)))
    .SelectMany(e => e.Departments).ToList();