У меня есть форум, и я собираю список недавно активных тем.Я упорядочиваю темы либо по дате последнего ответа, либо в случае, когда тема не имеет ответов, а затем по дате публикации темы.Следующий запрос отлично работает:
var topicsQuery = from x in board.Topics
let lastActivityDate = x.Replies.Any()
? x.Replies.OrderBy(y => y.PostedDate).Last().PostedDate
: x.PostedDate
orderby lastActivityDate descending
select x;
Этот запрос прекрасно работает.Каждый раз, когда страница загружается, темы упорядочены правильно.Однако теперь у меня есть вызов ajax, который ищет обновленную активность и выполняет похожий запрос:
topics = (from x in DBContext.Topics
let lastActivityDate = (x.Replies.Any()
? x.Replies.OrderBy(y => y.PostedDate).Last().PostedDate
: x.PostedDate)
where x.BoardID == boardID
where lastActivityDate > lastTopic.PostedDate
orderby lastActivityDate
select x).ToList<Topic>();
Может кто-нибудь увидеть что-то не так с этим запросом LINQ?Он генерирует следующую ошибку:
LINQ to Entities не распознает метод 'MyProject.Models.Reply Last [Ответить] (System.Collections.Generic.IEnumerable`1 [MyProject.Models.Reply])'и этот метод нельзя перевести в выражение хранилища.