实体框架ICollection到List

时间:2015-09-08 20:30:52

标签: c# linq

我正在尝试做这样的事情:

 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>

的正确方法

1 个答案:

答案 0 :(得分:2)

您有一个可查询的部门集合集合(请注意复数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();