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

时间:2011-07-21 04:37:37

标签: c# .net performance entity-framework

我正在使用网络上的应用程序,我正在使用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.OrderBy(c => c.AgeName).ToList();

1 个答案:

答案 0 :(得分:3)

在项目的新构建之后,执行的第一个数据库查询会导致EF构建用于数据访问的视图。这可能会导致严重的延迟。您可以通过EF预编译视图来解决它。请参阅MSDN中的How to: Pre-Generate Views to Improve Query Performance