我想知道是否可以先加快使用 EF 代码进行的第一个查询。
我制作了一个小型测试程序,其中包含一个包含 2 个字段的实体,第一个查询需要 2.2 秒,第二个查询(完全相同)需要 0.006 秒。
我已经在预编译视图,所以这在这里无济于事。我认为问题在于在内存中构建模型需要一些时间,但应该花那么长时间吗?有没有办法像视图一样预编译这个模型?
本文:使用预编译视图压缩实体框架启动时间详细介绍了解决方案。
它涉及使用实体框架高级工具中的"优化实体数据模型"选项来生成预编译的 .查看类文件。
进行第一次查询时,EF 会自行初始化,这需要一些时间。我认为为了加快 EF 的基础结构初始化,没有什么可做的,但是,如果你真正想要的是加快你所做的第一个查询而不是 EF 的初始化本身,那么,你可以尝试在运行第一个查询之前强制 EF 初始化。
using (var db = new MyContext())
{
db.Database.Initialize(force: true);
}