EF6迁移失败
本文关键字:失败 迁移 EF6 | 更新日期: 2023-09-27 18:10:16
我正试图为EF 6的MYSQL数据库创建一个迁移,并遇到MYSQL异常抛出的问题,通知表未找到。在我看来,问题的根源在于迁移有一个缺点。语句的前缀。手动更改迁移文件并删除dbo。部分作品。
这里的奇怪之处在于,只有当存在第二个迁移并且在检查第一个迁移文件后,我注意到它也有一个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
这里我可以运行数据库更新,但降级后失败。
好的,问题似乎是我没有MySqlMigrationCodeGenerator集作为迁移代码生成器,这导致生成dbo前缀,导致drop/create问题。