2017-06-01 58 views
1

我的數據庫中有一些名爲「Test」的表中有一些數據。 我做了一個名爲「CopyTest」的表格的副本。更改與實體模型相關的表名稱

如果我改變:

modelBuilder.Entity<IISLog>() 
    .ToTable("Test"); 

到:

modelBuilder.Entity<IISLog>() 
    .ToTable("CopyTest"); 

我得到一個錯誤說:因爲數據庫創建

已經時過境遷。考慮使用 Code First Migrations來更新數據庫

我該如何阻止這種顯示?這只是一個表名稱變更:)

回答

1
  • 解決方案1 ​​

刪除第一次遷徙,比嘗試:

Add-Migration <migration-name> 

然後打開遷移文件,並更改表名稱手動。之後:

update-database -verbose 

如果它不起作用。

  • 解決方案2

嘗試從SQL Server Management Studio中刪除遷移歷史。

參考網址 - Resetting Entity Framework Migrations to a clean Slate

1

遷移到初始DB 與

Update-Database -TargetMigration:"name_of_migration" 

然後更新到當前的狀態:

Update-Database 

在必要時再次添加您的遷移:

Add-Migration TableNameUpdate 
0

添加使用add-migration Rename_Test_To_CopyTest

然後新的遷移,生成的文件中,可以使用RenameTable方法:

public partial class Rename_Test_To_CopyTest : DbMigration 
{ 
    public override void Up() 
    { 
     RenameTable("dbo.Test", "dbo.CopyTest"); 
    } 

    public override void Down() 
    { 
     RenameTable("dbo.CopyTest", "dbo.Test"); 
    } 
} 

然後使用update-database如常。