问题描述
我正在我的 ASP.NET MVC 项目中实现自动迁移。当我手动运行 add-migration
或 update-database
时,迁移工作正常。
但是,当我运行项目并将配置设置为 AutomaticMigrationsEnabled=true
时,自动迁移不起作用。
这是我的设置;我希望每当我更改模型中的某些内容时,它都应该在我每次启动项目时反映到我的数据库中。
配置.cs
AutoMigrationEntities.cs
谢谢。希望你能帮助我。
解决方法
启用自动迁移只会避免添加迁移的步骤,不会自动更新数据库。
自动迁移将避免使用 Add-Migration(除非我们真的需要),而是专注于让 Code First Migrations 自动计算和应用更改。我们将需要 Update-Database 来获取 Code First Migrations 以将我们模型的更改推送到数据库。
运行
更新数据库
包管理器控制台中的命令将更新反映数据库更改的数据库。
如果您希望自动完成这两项操作,请参阅 EF - code first - automatic update database
您可以使 MigrateDatabaseToLatestVersion 初始值设定项使用由首先触发迁移的上下文使用的连接字符串。这是通过将 useSuppliedContext: true 传递给 MigrateDatabaseToLatestVersion 构造函数来完成的,如下所示。
Database.SetInitializer(new MigrateDatabaseToLatestVersion<AutoMigrationEntities,Configuration>(useSuppliedContext: true));