【发布时间】:2019-12-06 16:51:23
【问题描述】:
是否可以阻止 EF 在下面的查询中进行两次查询?
var regitriesNames =
from registryView in registryViewRepository.GetAll()
where (
from registryReport in registryReportRepository.GetAll()
where registryReport.ReportId == reportId
select registryReport.RegistryViewId
).Contains(registryView.Id)
select registryView.Name;
查询工作正常。我唯一想避免的是重复使用GetAll()。
那么,是否有可能以某种方式改进查询?
我有两个实体:RegistryView 和 Report,我有一个实体代表它们之间的多对多关系 RegistryReport。 p>
【问题讨论】:
-
如果可能,存储
GetAll方法会导致一个variable通过查询。 -
为什么要调用 GetAll()? registryViewRepository 和 registryReportRepository 是否共享一个 DbContext 实例?
标签: sql entity-framework orm