【发布时间】:2023-04-07 16:19:01
【问题描述】:
我有一些课程:
public Department {
public HashSet<Employee> Managers {get; set;}
public HashSet<Employee> Workers {get; set;}
public HashSet<Asset> Assets {get; set;}
}
我正在使用 IQueryable 来获取部门集合:
IQueryable<Department> deparments = Context.Department.Where (
dept => dept.CompanyId = id)
.include (dept.Managers.Where (emp => emp.level == Position.Manager) as Managers)
.include (dept.Workers.Where (emp => emp.level == Position.Worker) as Workers)
.include (dept.Asset)
执行查询时出现错误。这样做的正确方法是什么?这是错误消息:
"Include 属性 lambda 表达式 'dept => {from Employee emp in dept.Employee where ([emp].Position == Position.Manager) 选择 [emp]}' 无效。该表达式应表示属性访问: 't => t.MyProperty'。要定位在派生类型上声明的导航, 指定目标类型的显式类型 lambda 参数,例如 '(Derived d) => d.MyProperty'.
有关包含相关数据的更多信息,请参阅http://go.microsoft.com/fwlink/?LinkID=746393。”
【问题讨论】:
-
您能否提供错误信息?
-
错误是必需的,所以我们有一个关于正在执行什么的指标。
-
更新了错误信息。
标签: c# entity-framework linq iqueryable