Entity Framework Code-First 启动时太慢

Entity Framework Code-First too slow at startup

我知道之前有很多人问过这个问题,但我仍然没有找到有效的修复方法。

我正在创建一个会定期启动和停止的桌面应用程序。该数据库是在线存储的 MySQL 数据库,我使用的是最新版本的 EF 和 MySQL 连接器。

我也在以代码为先。目前,我只有 3 个小实体,但这些实体会随着时间的推移而增长很多。数据库已经在启动时生成,因此无需再创建。

每次启动应用程序时(即使已部署),从数据库中检索第一个数据(只有 50 条记录,但我也只尝试了 10 条,但没有任何区别)很慢:大约 5 秒。在那之后,接下来的查询非常快(大约 1 秒)。

我已经尝试生成视图,但它没有任何改变。我也只创建了 1 个 DbContext。

如果我尝试使用 ADO.NET,我几乎可以立即得到结果,即使是在第一次查询时(检索所有 50 条记录),所以它与连接问题无关。

我不确定我必须提供什么信息才能让你帮助我,所以请随时询问更多信息。

知道我可以尝试什么吗?用户开始使用该程序真的需要 5 秒吗?

在 EF 上,第一个查询是 运行 它必须被编译,即使程序已经被编译。

我建议阅读此 http://www.codeproject.com/Articles/38174/How-to-improve-your-LINQ-query-performance-by-X and this https://msdn.microsoft.com/en-us/library/vstudio/bb896297%28v=vs.100%29.aspx 并再次尝试看看是否有帮助。

祝你好运!