【问题标题】:Entity Framework Code-First too slow at startupEntity Framework Code-First 在启动时太慢了
【发布时间】:2015-04-04 23:48:54
【问题描述】:

我知道这已经被问过很多次了,但我仍然没有找到有效的解决方法。

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

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

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

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

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

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

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

【问题讨论】:

  • 看这个 - romiller.com/2014/06/10/reducing-code-first-database-chatter 如果你不需要 EF,请不要使用它...
  • 为了测试,我已经完成了第一步 - 将 DatabaseInitializer 设置为 null。但是,当我设置断点时,它似乎并没有被执行,并且根本没有区别。我已将文件放在与我的上下文相同的命名空间中......知道我可能做错了什么吗?
  • 哦,我已经知道了。。我有这个属性:[DbConfigurationType(typeof(MySqlEFConfiguration))]

标签: c# mysql sql entity-framework ef-code-first


【解决方案1】:

在 EF 上,第一次运行查询时,即使程序已经编译,也必须对其进行编译。

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

祝你好运!

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-01-12
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-19
相关资源
最近更新 更多