为什么EF在第一次调用方法时需要很长时间

本文关键字:长时间 方法 EF 第一次 调用 为什么 | 更新日期: 2023-09-27 18:03:13

我正在web上的应用程序工作,我正在使用ef来创建模型和访问数据库。

  1. 创建会话变量用于会话级别:

    private Model.WebsiteModelContainer s_defaultModel;
    public Model.WebsiteModelContainer DefaultModel
    {
        get
        {
            s_defaultModel = HttpContext.Current.Session["DefaultModel"] as WebsiteModelContainer;
            if (s_defaultModel == null)
            {
                s_defaultModel = new Model.WebsiteModelContainer();
                HttpContext.Current.Session["DefaultModel"] = s_defaultModel;
            }
    
            return s_defaultModel;
        }
    }
    
  2. 使用DefaultModel代码:

    DefaultModel.Ages返回。order (c => c. agename).ToList();

为什么EF在第一次调用方法时需要很长时间

在项目的新构建之后,执行的第一个数据库查询导致EF构建用于数据访问的视图。这可能会导致严重的延迟。您可以通过让EF预编译视图来解决这个问题。参见如何:从MSDN预生成视图以提高查询性能。