Мы обновили сервис с. Net Core 2.1 до 3.1, переоценивая запросы, которые прервались или стали медленнее во время перехода, мы натолкнулись на этот запрос:
_context.InboundRecords.GroupBy(x => x.State.ToString()).ToDictionary(x => x.Key, x => x.Count())
Чтобы это работало "с изменениями 3.1 мы добавляем список между DBSet и группой.
_context.InboundRecords.ToList().GroupBy(x => x.State.ToString()).ToDictionary(x => x.Key, x => x.Count())
Проблема здесь в том, что это приводит к полноте набора данных InboundRecords, установленного в памяти, перед группировкой. Это идентично тому, как работал 2.1, но должен быть лучший способ сделать это. Можем ли мы настроить этот запрос, чтобы вернуть только состояние и количество записей в этом состоянии?