【发布时间】:2014-09-08 09:57:07
【问题描述】:
我正在为我的 EF 5 项目使用旧版 ObjectContext。与项目一样,该项目自开始以来已经显着增长,现在我们坐在大约 400 个表中,以及一些也包含在 edmx 模型中的视图。一切都很好......但是对于试图调试东西并且必须等待一分钟以上才能准备好网站运行的程序员和测试人员来说,冷启动时间已经成为一个真正的问题以及 QA 和生产构建的用户,他们同样必须等待很长时间才能准备好使用每个新部署。
我们还有一个开发路线图,它将向我们的数据库添加更多表。所以这个问题只会变得更糟。
我们可以做些什么来加快我们的启动时间吗?切换到DbContext 会有帮助吗?如果是这样,对于使用ObjectContext 的现有代码会有多大的破坏性?
【问题讨论】:
-
@MarcGravell,我刚刚在那里阅读了你的答案,我明白了要点,但不知道它是如何在实践中完成的。你能具体说明你将如何做到这一点吗?也许在这里作为答案?
-
DBContext 只是 ObjectContext 的一个包装器。您仍然可以通过 DBContext 获得对 ObjectContext 的引用。所以我怀疑这会加速任何事情。
-
需要考虑的是你是如何加载你的对象的?懒惰还是渴望? Lazy 可以在使用相关对象时创建对 DB 的额外调用。试着关掉一点。例如。而不是玩弄 IQueryable 对 List 的更改。
-
@PaulZahra,所有关系属性都是延迟加载的。但是加载数据库时并不慢;这是缓存数据模型的启动时间,加上第一次连接到数据库的时间。
标签: c# entity-framework asp.net-mvc-4 sql-server-2012 entity-framework-5