Invalidoperationexception: выражение LINQ для groupby
Я реализации основного проекта asp.net . Я написал запрос, как показано ниже в моем коде,
var RegisteredReqStatus = (from t1 in _context.Apiapplicant join t2 in _context.ApiApplicantHistory on t1.Id equals t2.ApiApplicantId join t3 in _context.EntityType on t2.LastReqStatus equals t3.Id where t1.IsDeleted.Equals(false) && t1.LastRequestStatus == t2.Id group t2 by t2.LastReqStatus into ApiAppGp select new { lastReqName = ApiAppGp.FirstOrDefault().LastReqStatusNavigation.Name, ReqCount = ApiAppGp.Count() } ).ToList();
но после запуска моего проекта он показывает мне ошибку, как показано ниже:
InvalidOperationException: The LINQ expression '(GroupByShaperExpression: KeySelector: (a.lastReqStatus), ElementSelector:(EntityShaperExpression: EntityType: ApiApplicantHistory ValueBufferExpression: (ProjectionBindingExpression: EmptyProjectionMember) IsNullable: False ) ) .FirstOrDefault()' не удалось перевести. Либо перепишите запрос в форме, которую можно перевести, либо явно переключитесь на оценку клиента, вставив вызов AsEnumerable(), AsAsyncEnumerable(), ToList () или ToListAsync(). Видишь ли https://go.microsoft.com/fwlink/?linkid=2101038 для получения дополнительной информации.
Что я уже пробовал:
var RegisteredReqStatus = (from t1 in _context.Apiapplicant join t2 in _context.ApiApplicantHistory on t1.Id equals t2.ApiApplicantId join t3 in _context.EntityType on t2.LastReqStatus equals t3.Id where t1.IsDeleted.Equals(false) && t1.LastRequestStatus == t2.Id group t2 by t2.LastReqStatus into ApiAppGp select new { lastReqName = ApiAppGp.FirstOrDefault().LastReqStatusNavigation.Name, ReqCount = ApiAppGp.Count() } ).ToList();
Garth J Lancaster
Мое "внутреннее чувство" заключается в том, что ApiAppGp - это анонимный тип, который, как следует из ошибки, не имеет AsEnumerable (), определенного на нем-следовательно,.FirstOrDefault() терпит неудачу.
Как следует из сообщения об ошибке, вы можете попробовать что-то еще
lastReqName = ApiAppGp.AsEnumerable().FirstOrDefault().LastReqStatusNavigation.Name,
но это все равно выглядит/чувствует себя неправильно. Надеюсь, кто-то другой даст вам лучший ответ, у меня сейчас нет времени запускать его и играть с ним.
ElenaRez
Спасибо за ваше предложение, тем не менее ошибка существует следующим образом:
.AsEnumerable()' не удалось перевести. Либо перепишите запрос в форме, которую можно перевести