Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 指定的目标迁移';201201230637551_迁移和x27;不存在吗?_C# 4.0_Entity Framework 4_Entity Framework Migrations - Fatal编程技术网

C# 4.0 指定的目标迁移';201201230637551_迁移和x27;不存在吗?

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);

我正在使用EntityFramework 4.3测试版及其数据迁移工具。我编写了以下代码,用于生成自定义迁移并将其应用于数据库

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。