asp mvc以优化的方式从数据库一次加载全局变量

时间:2018-12-05 10:11:33

标签: asp.net-mvc web-applications web-config

我必须从数据库中加载一些全局变量,例如
-动态页面的菜单将来自数据库 -联系信息也将来自数据库 -还有其他...

目前,我正在所有控制器的构造函数中将其提取为

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秒)
是否有某种优化的方法可以一次从数据库中获取这些默认值,而无需将其缓存任何固定的时间。

我在考虑是否可以在应用程序级别加载它,以便可以在所有控制器和视图上进行访问。

0 个答案:

没有答案