C# 4.0 指定的目标迁移';201201230637551_迁移和x27;不存在吗?
我正在使用EntityFramework 4.3测试版及其数据迁移工具。我编写了以下代码,用于生成自定义迁移并将其应用于数据库C# 4.0 指定的目标迁移';201201230637551_迁移和x27;不存在吗?,c#-4.0,entity-framework-4,entity-framework-migrations,C# 4.0,Entity Framework 4,Entity Framework Migrations,我正在使用EntityFramework 4.3测试版及其数据迁移工具。我编写了以下代码,用于生成自定义迁移并将其应用于数据库 MigrationScaffolder ms=new MigrationScaffolder(configuration); ScaffoldedMigration scaffoldedMigration= ms.Scaffold("Migration"); DbMigrator dbMigrator = new DbMigrator(configuration);
MigrationScaffolder ms=new MigrationScaffolder(configuration);
ScaffoldedMigration scaffoldedMigration= ms.Scaffold("Migration");
DbMigrator dbMigrator = new DbMigrator(configuration);
dbMigrator.Update(scaffoldedMigration.MigrationId);
脚手架功能运行良好,并正确生成了迁移
但是一个例外出现了,说
“指定的目标迁移'201201230637551_migration'不存在
存在。确保目标迁移引用现有迁移
身份证。“
这是否会发生,因为这仍然是一个测试版?有人能帮我解决这个问题吗
谢谢。这不是因为您使用的是测试版。MigrationScaffolder类仅用于生成配置类。生成的文件不会自动添加到解决方案中。如果我们想将它传递到DbMigrator.Update()方法中,我们应该首先将生成的文件添加到解决方案中。然后我们应该创建该类的一个实例,并像下面这样将其传递到update()方法中
{
DbMigrationsConfiguration myConfiguration=new MyConfiguration();
DbMigrator dbMigrator = new DbMigrator(configuration);
dbMigrator.Update(myConfiguration);
}
这里MyConfiguration是生成的类
此外,您不需要以这种方式将迁移应用到项目中。相反,您可以使用:
{
DbMigrationsConfiguration myConfiguration=new DbMigrationsConfiguration(){
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
}
DbMigrator dbMigrator = new DbMigrator(configuration);
dbMigrator.Update(myConfiguration);
}
我认为在这个例子中应该切换配置和myConfiguration。