Advertisement
Guest User

Elegant query for Sergii

a guest
Oct 4th, 2015
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.70 KB | None | 0 0
  1. IEnumerable<Message> messages = await context.Messages
  2.                     .Where(m => m.Recipient_Id == userId || m.Author_Id == userId)
  3.                     .Select(m => new
  4.                     {
  5.                         Partner = m.Recipient_Id == userId ? m.Author_Id : m.Recipient_Id,
  6.                         Message = m
  7.                     })
  8.                     .GroupBy(m => m.Partner)
  9.                     .SelectMany(messageGroup => messageGroup
  10.                         .Where(lastMessage =>
  11.                             lastMessage.Message.Time == messageGroup.Max(m => m.Message.Time))
  12.                         .Take(1))
  13.                     .Select(m => m.Message)
  14.                     .ToListAsync();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement