C# 可查询的条件包含

C# 可查询的条件包含,c#,entity-framework,linq,iqueryable,C#,Entity Framework,Linq,Iqueryable,我有一些课程: public Department { public HashSet<Employee> Managers {get; set;} public HashSet<Employee> Workers {get; set;} public HashSet<Asset> Assets {get; set;} } 公共部门{ 公共哈希集管理器{get;set;} 公共哈希集工作程序{get;set;} 公共HashSet。“因为您的经理和

我有一些课程:

public Department {
  public HashSet<Employee> Managers {get; set;}
  public HashSet<Employee> Workers {get; set;}
  public HashSet<Asset> Assets {get; set;}
}
公共部门{ 公共哈希集管理器{get;set;} 公共哈希集工作程序{get;set;}
公共HashSet。“

因为您的
经理
工人
属性是
部门
类的直接子类,您在
员工
类中不引用
部门
,因此您不能为此目的使用
包含()

我认为应该通过使用子查询来实现这一点

var query = (from d in Contex.Department
             where d.CompanyId == id
             select new Department{
                 Managers = d.Managers.where(m => m.level == Position.Manager),
                 Workers = d.Workers.where(w => w.level == Position.Worker),
                 Asset = d.Assets,
             });

希望它能解决您的问题。

您能提供错误信息吗?错误信息是必需的,因此我们有一个关于执行情况的指示器。更新的错误消息.Include不会过滤任何数据。理想情况下,您的代码可以正常工作
var query = (from d in Contex.Department
             where d.CompanyId == id
             select new Department{
                 Managers = d.Managers.where(m => m.level == Position.Manager),
                 Workers = d.Workers.where(w => w.level == Position.Worker),
                 Asset = d.Assets,
             });