EF6迁移失败

EF6迁移失败

问题描述:

我想创建一个与EF 6的MYSQL数据库的迁移,并运行到引发MYSQL异常的问题,通知该表未找到。从我看到的问题来自迁移有dbo的事实。在报表上添加前缀。手动更改迁移文件并删除dbo。部分作品。EF6迁移失败

这里的一个奇怪的事情是,错误只发生在存在第二次迁移时,并且在检查第一个迁移文件后,我注意到它也有一个dbo。前缀,但仍然可以正确创建数据库,并且只有在数据库正在迁移到第二个版本时才会抛出异常。

创建数据库时没有dbo。即使在dbo时也可以在表或任何其他数据库部分添加前缀。前缀存在于初始创建迁移中,所以它让我怀疑是否必须有一部分代码来处理它?

迁移代码:

public partial class Update1 : DbMigration 
{ 
    public override void Up() 
    { 
     AddColumn("dbo.ProductOrderLine", "SomeData_Id", c => c.Int()); 
     CreateIndex("dbo.ProductOrderLine", "SomeData_Id"); 
     AddForeignKey("dbo.ProductOrderLine", "SomeData_Id", "dbo.User", "UserId"); 
    } 

    public override void Down() 
    { 
     DropForeignKey("dbo.ProductOrderLine", "SomeData_Id", "dbo.User"); 
     DropIndex("dbo.ProductOrderLine", new[] { "SomeData_Id" }); 
     DropColumn("dbo.ProductOrderLine", "SomeData_Id"); 
    } 
} 

异常降级的时候,搞怪足够的升级工作。

Reverting migrations: [201508280829293_Update1]. 
Reverting explicit migration: 201508280829293_Update1. 
alter table `dbo.ProductOrderLine` drop foreign key `FK_dbo.ProductOrderLine_dbo.User_SomeData_Id` 
MySql.Data.MySqlClient.MySqlException (0x80004005): Table '_gizmo_db.dbo.productorderline' doesn't exist 

在这里,我能够运行数据库更新,但降级失败后。

+0

请显示您的模型,映射和完全例外。 – Kamo

好吧,似乎问题是我没有将MySqlMigrationCodeGenerator设置为迁移代码生成器,并导致生成dbo前缀导致丢失/创建问题。