EF Core 6: как выбрать последний элемент для каждой группы и преобразовать его в другой классC#

Место общения программистов C#
Ответить
Anonymous
 EF Core 6: как выбрать последний элемент для каждой группы и преобразовать его в другой класс

Сообщение Anonymous »

У меня есть таблица комментариев, имеющая следующую схему:

Код: Выделить всё

public Class Comments
{
public string CommenterName { get; set; }
public string PostId { get; set; }
public int Id { get; set; }
public string Message { get; set; }
public long ModificationTime { get; set; }
}
Я хочу создать запрос, который будет получать последний комментарий и идентификатор конкретного комментатора к данному сообщению.
Я попробовал следующий код :

Код: Выделить всё

Comment.Where(comment => comment.PostId == postId)
.GroupBy(comment => new { comment.CommenterName }, comment => comment)
.Select(comment => comment.OrderByDescending(i => i.ModificationTimeUnixTimeInMs).First())
.Select(comment => new
{
Id = comment.Id,
Message = comment.Message
})
.ToList()
Причина, по которой я хочу сделать последний выбор, заключается в том, что результаты затем добавляются в объединение с другим запросом для нужд разбиения на страницы (другой запрос также возвращает Id и Message< /code>, но из другой таблицы).
Я получаю следующую ошибку:

Выражение LINQ 'ProjectionBindingExpression : 0' невозможно перевести.

Можете ли вы мне помочь?
Я использую .NET 6

Подробнее здесь: https://stackoverflow.com/questions/783 ... fferent-cl
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»