2017-06-01 2 views
1

私のデータベースには「テスト」という表のデータがあります。 私は "CopyTest"というテーブルを複製しました。エンティティモデルに関連するテーブル名を変更してください

は、私が変更した場合:

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

に:データベースが作成されてから

コンテキストが変更されました:

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

私はというエラーを取得します。 コードの最初の移行を使用してデータベースを更新することを検討してください。

これを表示しないようにするにはどうすればよいですか?それはちょうど、テーブル名の変更です:)

答えて

1
  • ソリューション1

まず移行と試みるよりも、削除:

Add-Migration <migration-name> 

そして、オープン移行ファイルを、表の名前を手動で変更します。その後:

update-database -verbose 

動作しない場合。

  • ソリューション2

SQLサーバー管理スタジオからの移行履歴を削除してください。

参考URL - Resetting Entity Framework Migrations to a clean Slate

1

移行初期DB へ

Update-Database -TargetMigration:"name_of_migration" 

と、あなたの現在の状態に更新します。必要であれば、もう一度、移行を追加

Update-Database 

Add-Migration TableNameUpdate 
0

RenameTableメソッドを使用し、結果のファイルに、次にadd-migration Rename_Test_To_CopyTest

を使用して新しい移行を追加します。

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を使用します。

関連する問題