实体框架启动时间

时间:2012-06-22 13:39:30

标签: performance entity-framework code-first startup precompiled

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

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

我已经预编译了视图,因此在这里不会有用。 我认为问题是在内存中构建模型需要一些时间,但是它需要花费那么长时间吗?有没有一种方法来预编译这个模型,就像有视图一样?

2 个答案:

答案 0 :(得分:5)

本文:Squash Entity Framework startup time with pre-compiled views详细介绍了解决方案。

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

答案 1 :(得分:5)

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

        using (var db = new MyContext())
        {
            db.Database.Initialize(force: true);
        }