Предположим, у нас сложный сгенерированный запрос ...
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