有什么方法可以补救EF慢启动?

时间:2014-09-08 09:57:07

标签: c# entity-framework asp.net-mvc-4 sql-server-2012 entity-framework-5

我正在为我的EF 5项目使用遗留ObjectContext。该项目自成立以来已经大大增加,正如项目所做的那样,现在我们坐在大约400个桌子上,加上一些也包含在edmx模型中的视图。这一切都运行良好......但是从冷的启动时间开始成为一个真正的问题,对于那些试图调试内容并且必须在网站准备好运行之前等待一分钟的程序员以及测试人员来说QA和生产版本的用户,在每次新部署准备好使用之前,他们也需要等待很长时间。

我们还有一个开发路线图,它将为我们的数据库添加更多表。所以这个问题只会变得更糟。

我们可以做些什么来加快启动时间?会切换到DbContext有帮助吗?如果是这样,对于使用ObjectContext的现有代码会有多大的破坏性?

1 个答案:

答案 0 :(得分:2)

要回答您的问题,是的,您可以采取很多措施来加快开始时间,例如使用预生成的视图(仅适用于DbContext),使用外键关联来降低视图生成成本并移动您的模型到一个单独的组件。

e.g。 “当您的模型直接包含在应用程序的项目中并通过预构建事件或T4模板生成视图时,无论何时重建项目,都会进行视图生成和验证,即使模型未更改。如果您将模型移动到单独的程序集并从应用程序的项目中引用它,您可以对应用程序进行其他更改,而无需重建包含模型的项目。“

Read this lengthy MSDN Performance Considerations for EF4, EF5, EF6 article.

DBContext只是ObjectContext的包装器。您仍然可以通过DBContext获取对ObjectContext的引用。所以我怀疑这会加速任何事情,如果有什么事情可能会减慢速度。