Список объектов в качестве аргумента в методе OrderbyDesceding linq Asp.Net core 2.0 - PullRequest
0 голосов
/ 26 июня 2018

У меня есть два модальных класса:

  1. Диалоги

    public long Id 
    public string SenderId
    public string RecieverId
    public virtual List<Message> Messages
    public virtual User User
    
  2. Сообщения

    public long Id
    public string MessageBody
    public long ConversationId
    public string SenderId 
    public DateTime CreatedDate
    

Я хочу получить все разговоры с OrderbyDescending в сообщении CreatedDate.

Я имею в виду сортировку разговора, в котором последнее сообщение является последним по дате создания. Как:

var conversations = _context.Conversations
    .Include(x => x.Messages)
    .Include(x => x.Users)
    .Where(x => x.RecieverId== userId)
    .OrderByDescending(x => x.Messages.Any(x => x.CreatedDate))
    .ToList();

Но таким образом я не могу написать OrderByDescending заявление.

Пожалуйста, дайте мне предложения, если можете.

Надеюсь, что кто-то понимает мою точку зрения.

1 Ответ

0 голосов
/ 26 июня 2018

Вы должны упорядочить по «последнему» сообщению в беседе, поэтому вам нужно упорядочить по «самой высокой» дате в каждом сообщении, это достигается с помощью метода linq Max(). Посмотрите, может ли это вам помочь:

 .OrderByDescending(conversation => conversation.Messages.Max(message => message.CreatedDate)).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...