Мы обновили сервис с Net Core 2.1 до 3.1. Благодаря помощи в другом вопросе мы исправили большое количество запросов, которые вызывали проблемы, но у нас все еще возникают проблемы, когда группировка по объединяется с Where.
Это оригинальный запрос (после добавление ToList, чтобы он работал после конвертации 3.1
var charDesc = _context.Descriptions.Where(x => x.DescriptionType == DescriptionType.Characteristic).ToList()
.GroupBy(x => x.DescriptionKey).ToDictionary(x => x.Key, x => x.ToList());
Мы предприняли несколько изменений этого, последний из которых
var charDesc = _context.Descriptions.GroupBy(x => x.DescriptionKey)
.Select(x => new { x.Key,
DescriptionString = x.Where(y => y.DescriptionType == DescriptionType.Characteristic)
.Select(y => y.DescriptionString).First() })
.ToDictionary(x => x.Key, x => x.DescriptionString);
Это приводит к ошибке, что linq Выражение. Куда не удалось перевести. Либо переписать запрос в форме, которую можно перевести, либо явно переключиться на оценку клиента, вставив вызов либо AsEnumerable (), AsAsyncEnumerable (), ToList (), либо ToListAsyn c ( )
У меня было много проблем с поиском хорошего ресурса для написания запросов linq с group by в 3.1. Как правильно объединить Group By и Where?