首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EF6查询预编译

EF6查询预编译
EN

Stack Overflow用户
提问于 2015-04-24 21:38:42
回答 1查看 3.2K关注 0票数 4

有没有办法预编译EF查询,这样应用程序就不需要编译它(即使是第一次执行)?

我有很多复杂的查询,当使用L2E时,需要一些时间来执行。例如,对于我以Sql Server profiler为基准进行基准测试的一个查询,报告的执行时间约为300ms,但实际上在我的PC (至强四核2.6 GHz,内存为8 GHz)上完成此查询的时间约为4.5秒。这意味着我的PC正在等待大约0.5秒的数据到达,并花费大约4秒来编译和执行查询,最后读取我的PC上的数据(仅为4条记录)。这需要很多时间,特别是因为ToListAsyns()在实际的查询被发送到数据库之前不会将控制权返回给UI,所以这意味着我的应用程序全部4秒都“挂起”。解决这个问题的一种方法是使用Task.Run()而不是ToListAsync,但这只会允许我的应用程序显示一些等待信号,仍然会有4s的延迟。

在一些较老的PC上,这可能意味着用户将等待10秒来进行查询编译,这并不是我们所希望的。所以,任何人都知道我如何预编译我所有的查询,以便即使是第一次执行它们也不会延迟?

EN

回答 1

Stack Overflow用户

发布于 2015-04-25 04:04:20

我相信你正在寻找的概念是‘预生成的映射视图’-- https://msdn.microsoft.com/en-us/data/dn469601.aspx

在搜索该特性的过程中,我还看到了这篇最近的相关文章-- http://www.fusonic.net/en/blog/2014/07/09/three-steps-for-fast-entityframework-6.1-first-query-performance/

请注意,在EF 5中添加了对自动编译行到实体查询的支持,因此不再每次都进行编译- https://msdn.microsoft.com/en-us/data/hh949853.aspx#4

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29849021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档