Создание класса модели представления, который является самоссылочным.
Заполните его в соответствующем классе модели (или, возможно, в вашем DataContext
частичном классе), используя запрос, который вы выполняете в представлении.
Оберните метод, выполняющий запрос, в метод, который проверяет и сохраняет результат в Cache
.
Убедитесь, что вы отменяете кэш при внесении изменений в дерево категорий.
Если запрос выполняет много запросов (по одному на уровень дерева), рассмотрите возможность получения содержимого таблицы категорий в виде плоского списка, а затем используйте linq для объектов, чтобы спроецировать его в класс модели представления.