我正在使用带有 AutomaticMigrationsEnabled = true
的 Entity Framework Code First 方法:
Database.SetInitializer(new MigrateDatabaseToLatestVersion<DbContext, MigrateDBConfiguration>());
//////////////////////////////////
public class MigrateDBConfiguration : System.Data.Entity.Migrations.DbMigrationsConfiguration<DbContext>
{
public MigrateDBConfiguration()
{
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
}
}
项目的第一次运行按预期创建了数据库和表。在添加或删除字段后,我运行了 Add-Migration
。 Migration 类被生成,但是在运行项目后出现以下异常:
类型为 'System.InvalidOperationException' 的异常在 EntityFramework.dll 中发生,但未在用户代码中处理
额外信息:自数据库创建以来,与 'DBContext' 上下文支持的模型发生了更改。
编辑:根据arturo menchaca的回答建议,我修改了我的代码如下:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
Database.SetInitializer(new MigrateDatabaseToLatestVersion<DBContext, MigrateDBConfiguration<DBContext>>());
...
更改后,出现以下异常:
数据库中已经存在名为“MyTable”的对象。
我该如何应用数据库迁移?