【发布时间】:2019-10-12 19:52:20
【问题描述】:
在我的数据库中,我有 3 表、Exams、ExamPlaces、Agents。 Exams 表中每个考试的 Id 是 ExamPlaces 表中的外键,每个考试地点的 Id 是 Agents 中的外键强>表。我想退回特定代理的所有考试。我试图这样返回考试:
return _db.Exams
.Include(e => e.ExamPlaces.Select(a => a.Agents
.Where(agent => agent.AgentId == supervisorId))).ToList();
但我收到以下错误:
包含路径表达式必须引用在类型上定义的导航属性。对引用导航属性使用虚线路径,对集合导航属性使用 Select 运算符。参数名称:路径
是否可以像使用“Include”一样使用“Where”子句来检索数据?
欣赏
【问题讨论】:
-
在包含之外的地方进行过滤。
-
在包含中,您只能指定加载导航属性(以实现存储在不同表中的内容)。对你来说可能(e => e.ExamlPlaces)。您不能过滤以“有时”执行此操作。无法获得考试列表,有时会加载代理,有时不会加载。总是或永远不会。
标签: c# asp.net-mvc entity-framework-6