我必须从数据库中加载一些全局变量,例如
-动态页面的菜单将来自数据库
-联系信息也将来自数据库
-还有其他...
目前,我正在所有控制器的构造函数中将其提取为
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秒)
是否有某种优化的方法可以一次从数据库中获取这些默认值,而无需将其缓存任何固定的时间。
我在考虑是否可以在应用程序级别加载它,以便可以在所有控制器和视图上进行访问。