是否可以防止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 。 >
答案 0 :(得分:2)
请选中此一项。
代码
var lstdata = registryViewRepository.GetAll();
var regitriesNames = from registryView in lstdata
where (
from registryReport in lstdata
where registryReport.ReportId == reportId
select registryReport.RegistryViewId
).Contains(registryView.Id)
select registryView.Name;