11

我想知道是否可以先加速使用 EF 代码进行的第一个查询。

我制作了一个包含 2 个字段的实体的小型测试程序,第一个查询需要 2.2 秒,第二个查询(完全相同)需要 0.006 秒。

我已经在预编译视图,所以在这里没有帮助。我认为问题在于在内存中构建模型需要一些时间,但是需要那么长时间吗?有没有办法像视图一样预编译这个模型?

4

2 回答 2

5

当您进行第一次查询时,EF 会自行初始化,这需要一些时间。我认为加快 EF 的基础架构初始化没有太多工作要做,但是,如果您真正想要的是加快您所做的第一个查询而不是 EF 的初始化本身,那么您可以尝试强制 EF 进行初始化运行您的第一个查询之前。

        using (var db = new MyContext())
        {
            db.Database.Initialize(force: true);
        }
于 2014-02-28T12:26:24.173 回答
5

这篇文章:Squash Entity Framework startup time with pre-compiled views详细描述了一个解决方案。

它涉及使用 Entity Framework Power Tools 中的优化实体数据模型选项来生成预编译的.Views类文件。

于 2012-06-22T13:47:52.963 回答