【发布时间】:2026-02-06 06:50:02
【问题描述】:
我继承了一个使用 Entity Framework 6 的 ASP.NET 应用程序,并启用了迁移。在我的 Global.asax 中,我有这个:
using (var context = new MyContext())
{
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext, MyConfiguration>());
context.Database.Initialize(true);
}
问题是每次我的应用程序需要启动(例如由于 IIS 将其关闭)时,都会运行此逻辑,即使在大多数情况下不需要执行迁移。这会显着减慢请求的处理速度。
我在这里有什么选择?什么是最佳实践?我可以禁用它并使用包管理器控制台手动执行迁移,但这超出了目的(尽管如果没有其他选项,我准备这样做)。
【问题讨论】:
-
自动迁移已在 EF Core 中移除(这里有一些 reasoning),所以看起来方向是手动执行迁移。
-
@IvanStoev 如果您将评论添加为答案,我会将其标记为正确答案。
标签: asp.net performance entity-framework