在EF中的第一次查询期间长时间延迟 - 每次执行新查询时都会发生这种情况吗?

时间:2014-10-16 12:31:50

标签: entity-framework

因此,当EF运行其第一个查询时,它必须动态编译查询。对查询的后续调用将更快,因为编译的查询现在驻留在缓存中。即使我的DBContexts可能来来去去,看起来编译的查询仍然保留在缓存中。 (如果我理解正确的话)

但是,第一次运行时每个查询都会有延迟,或者在第一次运行任何查询时EF编译/缓存所有查询。

而且,预​​编译看起来不是一个简单的任务。

1 个答案:

答案 0 :(得分:1)

当您第一次查询实体框架时,它会检查内存中的实体模型并生成可与该模型的数据库表示一起使用的SQL视图。实体模型越大越复杂,需要的时间越长。加快速度的唯一方法是提前生成这些视图。这是IMO实体框架在构建时默认应该做的事情,但事实并非如此。也许有一天。与此同时,你必须自己动手。

可在此处找到更多信息: http://msdn.microsoft.com/en-us/data/hh949853

实体框架Power Tools允许您从dbContext派生类文件的上下文菜单中执行此操作。

http://msdn.microsoft.com/en-us/data/jj593170.aspx