2015-08-28 167 views
0

我想創建一個與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

回答

0

好吧,似乎問題是我沒有將MySqlMigrationCodeGenerator設置爲遷移代碼生成器,並導致生成dbo前綴導致丟失/創建問題。