Я не думаю, что вам нужно OrderBy
во внутреннем запросе - используйте Max
(или Min
):
Model.Discussions.OrderByDescending( _
Function(d) d.Messages.Max(Function(m) m.Sent))
Хотя в VB я бы лучше использовал понимание запросов:
From d In Model.Discussions _
Order By (Aggregate m In d.Messages Into Max(m.Sent)) Descending _
Select d
Причина, по которой вы получили ошибку, по-видимому, заключается в том, что у вас есть обсуждение без сообщений; следовательно, вызов First
вызвал исключение. Max
сделает то же самое. Я не уверен, является ли это проблемой с вашим набором данных (кажется, что обсуждение без каких-либо сообщений не имеет смысла), но если это так, вам нужно использовать Enumerable.Empty()
для дополнительной проверки .