Я пытаюсь запросить базу данных с помощью Linq, чтобы получить только последнее сообщение, которое пациент отправил от каждого пациента из таблицы SmsMessages. Я пытаюсь сгруппировать сообщения по идентификатору пациента, отсортировать группы по дате, а затем вернуть первую запись этой группы, например:
var sms = await _dataContext.SmsMessages
.GroupBy(message => message.PatientId)
.Select(group => group.OrderByDescending(message => message.CreatedOn).FirstOrDefault())
.ToListAsync();
Несколько ответов на похожие вопросы, для пример , предлагаю выполнить вариант выше, но при выполнении запроса я получаю следующую ошибку: Ошибка:
сбой: Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware 1 Произошло необработанное исключение при выполнении запроса. System.InvalidOperationException: выражение LINQ '(GroupByShaperExpression: KeySelector: (s.PatientId), ElementSelector: (EntityShaperExpression: EntityType: SmsMessage ValueBufferExpression: (ProjectionBindingExpression: EmptyProjectionMember) сообщение) IsNullable>. не может быть переведено. Либо перепишите запрос в форме, которая может быть переведена, либо переключитесь на оценку клиента.