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

Posted

技术标签:

【中文标题】为啥 EF 在第一次调用的方法中需要很长时间【英文标题】:why EF takes a long time in first called method为什么 EF 在第一次调用的方法中需要很长时间 【发布时间】:2011-07-21 04:37:37 【问题描述】:

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

    创建用于会话级别的会话变量:

    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;
        
    
    

    在代码中使用 DefaultModel:

    return DefaultModel.Ages.OrderBy(c => c.AgeName).ToList();

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于为啥 EF 在第一次调用的方法中需要很长时间的主要内容,如果未能解决你的问题,请参考以下文章

状态栏颜色在ios中需要很长时间才能改变(仅第一次)[重复]

SQL Server 存储过程在第一次运行时需要很长时间

[uiautomator篇][python调用java][1]应用下载的插件需要很长时间问题解决

Hbase ResultScanner.next() 第一次响应需要很长时间

批量更新/删除EF5

iOS 模拟器第一次启动需要很长时间