ASP.NET中的MigrateDatabaseToLatestVersion性能

时间:2017-03-22 07:41:46

标签: asp.net performance entity-framework

我使用Entity Framework 6继承了一个ASP.NET应用程序,并启用了迁移。在我的Global.asax中,我有这个:

using (var context = new MyContext())
{
    Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext, MyConfiguration>());
    context.Database.Initialize(true);
}

问题在于,每次我的应用程序需要启动时(例如,由于IIS将其关闭),即使在大多数情况下也没有执行迁移,也会运行此逻辑。这大大减慢了请求的处理速度。

我有什么选择?什么是最佳做法?我可以禁用它并使用程序包管理器控制台手动执行迁移,但这种目的胜过(尽管如果没有其他选项,我已准备好这样做了。)

1 个答案:

答案 0 :(得分:2)

EF6自动迁移似乎引入了一些问题(不仅仅是性能),因此EF Core团队决定将其从EF Core中删除(您可以阅读一些推理here)。

由于EF Core是EF6的后续版本(实体框架的未来),看起来推荐(最佳做法)是禁用它并手动执行迁移。