我使用Entity Framework 6继承了一个ASP.NET应用程序,并启用了迁移。在我的Global.asax中,我有这个:
using (var context = new MyContext())
{
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext, MyConfiguration>());
context.Database.Initialize(true);
}
问题在于,每次我的应用程序需要启动时(例如,由于IIS将其关闭),即使在大多数情况下也没有执行迁移,也会运行此逻辑。这大大减慢了请求的处理速度。
我有什么选择?什么是最佳做法?我可以禁用它并使用程序包管理器控制台手动执行迁移,但这种目的胜过(尽管如果没有其他选项,我已准备好这样做了。)
答案 0 :(得分:2)
EF6自动迁移似乎引入了一些问题(不仅仅是性能),因此EF Core团队决定将其从EF Core中删除(您可以阅读一些推理here)。
由于EF Core是EF6的后续版本(实体框架的未来),看起来推荐(最佳做法)是禁用它并手动执行迁移。