Итак, я создаю форум и пытаюсь сортировать темы по дате последнего ответа. Поэтому, когда кто-то посещает домашнюю страницу и щелкает сортировку по «Ответу», он сортирует темы по самому последнему ответу. У меня возникли проблемы с этим с порядком переключения. Я попытался использовать:Как отсортировать фильтр по двум различным запросам?
var threads = from s in db.Forum
where s.ReplyId==0
select s;
var Replies = (from s in db.Forum
where s.ReplyId != 0
select s).OrderByDescending(i => i.DateCreated);
switch (sortOrder)
{
default:
threads = threads.OrderByDescending(s => Replies.Where(i => i.ReplyId == threads.Where(t=> t.Id==i.ReplyId).FirstOrDefault().Id).FirstOrDefault().DateCreated);
break;
}
И я получаю ошибку времени выполнения, говоря «Обнаружен цикл».
Запрос на темы захватывает все сообщения, у которых есть ReplyId из 0 или другими словами, каждое сообщение, которое считается нитью. Ответы захватывают все сообщения, которые не равны 0 или, другими словами, все сообщения, которые являются ответами на потоки.
Может ли кто-нибудь показать мне альтернативный способ сортировки тем по последним запросам? В обоих ответах и потоках используется одна и та же модель, поэтому она становится сложной задачей.
Ваш вопрос сбивает с толку. Я читал 3 раза и не мог получить разницу между «сортировать потоки по дате последнего ответа» и «сортировать потоки по самому последнему ответу». Возможно, если вы ставите задачу по-другому, вы сами получите ответ. – trailmax
Итак, я хочу отображать самые последние темы на основе их ответов. Так что если thread1 ответил, что я хочу, чтобы thread1 находился в верхней части списка, потому что это поток с последним действием. С того времени? –
Можете ли вы просто получить список самых последних ответов от БД, присоединиться к ним в потоки и отобразить эти темы? – trailmax