假设我们有一个复杂的生成查询...
IQueryable<...> query = ... //something complex
然后我想返回多个“方面”,而我当前的实现是...
var facets = new
{
Countries = query.Select(r => new { Id = r.CountryId, Name = r.Country.Name })
.Distinct().ToList(),
Regions = query.Select(r => new { Id = r.RegionId, Name = r.Region.Name })
.Distinct().ToList(),
... //7 more facets
};
通过此实现,我有9个ToList(),所以我将有9个数据库查询,并且由于“查询”非常复杂,因此会引起一些性能问题。是否有可能通过EF和单个数据库查询来实现此目标?
更新:EF Core版本3.1
当前(EF Core 3.1)无法通过单个数据库查询获得所需的结果形状。