asp mvc загружает глобальные переменные один раз из базы данных оптимизированным способом - PullRequest
0 голосов
/ 05 декабря 2018

Мне нужно загрузить некоторые глобальные переменные из базы данных, например
- меню на динамическую страницу будут поступать из базы данных - контактная информация также будет поступать из базы данных - и некоторые другие ...

в данный момент я получаюэто в конструкторе всех контроллеров как

public class HomeController : Controller
{
    private ApplicationDbContext db = new ApplicationDbContext();

    public HomeController()
    {
        if (ViewBag.Pages== null)
        {
            ViewBag.Pages= db.Pages.Where(s => s.status == 1).OrderBy(s => s.sort).ToList();
        }

        if (ViewBag.Contents == null)
        {
            ViewBag.Contents = db.Contents.Where(s => s.status == 1).OrderBy(s => s.group).ThenBy(s => s.sort).ToList();
        }
    }//constructor ends here

}//controller class ends here

тот же конструктор, что и у меня почти для всех других контроллеров.

все работает нормально, но TTFB слишком велик (максимум до 30 секунд)
Существует ли какой-то оптимизированный способ извлечения этих значений по умолчанию из базы данных один раз без кэширования в течение какого-либо фиксированного периода времени.

Я думаю, смогу ли я загрузить это на уровне приложения, чтобы иметь доступ ко всем контроллерам и представлениям.

...