У меня есть IQueryable
, в котором есть список страниц.
Я хочу сделать: Pages.OrderByDescending(o => CalculateSort(o.page));
метод вычисления sort аналогичен простой английской версии:
public int calculatesort(page p)
{
int rating = (from r in db.rating select r). sum();
int comments = //query database for comments;
float timedecayfactor = math.exp(-page.totalhoursago);
return sortscore = (rating +comments)* timedecayfactor;
}
когда я запускаю код, аналогичный приведенному выше, выдается сообщение об ошибке, что mothode calculateort не может быть преобразован в sql.
Как я могу сделать приведенную выше функцию понятной для sql, чтобы использовать ее для сортировки страниц?
Разве это не хороший подход для больших данных? Есть ли другой метод, используемый для сортировки наборов результатов, отличных от динамического в базе данных?
Я не спал несколько дней, пытаясь исправить это: (