Я изучаю LINQ, и мне потребовалось понять, как получить мои данные так, как я хотел, от mongoDB. Кажется, должен быть лучший способ, чем этот.
Основная предпосылка в коллекции UserMessage
, там есть ID, который я пытаюсь сгруппировать. Я хочу заказать по DateCreated
в UserMessage
.
Было бы также неплохо вернуть COUNT для групп, но я думаю, что готов помочь. :)
//get from the db all the mssages to this user and from
var result = (from messages in session.All<UserMessage>()
where messages.To == User.Identity.Name ||
messages.From == User.Identity.Name
orderby messages.DateCreated descending
select messages).ToList().GroupBy(t => t.AssociatedMessageID);
//.Select(g => new { AssociatedMessageID = g.Key });
var result2 = from m in result.ToList()
orderby m.First().DateCreated descending
select m;
List<IGrouping<string,UserMessage>> aryMsg = result2.ToList();
foreach (IGrouping<string,UserMessage> um in aryMsg)
{
//in this loop assign various members of each UserMessage to a view model
}