98

私は VS 2012 で EF 5 と共に EF Code First を使用しupdate-databaseています。

x.mdb を削除して再作成したいと考えています。更新履歴がずれているようです。コンテキスト内のすべての DBSet をコメント アウトするupdate-databaseと、エラーなしで実行されますが、DB にいくつかのテーブルが残ります。DB に貴重なデータがないので、すべてをリセットするのが最も簡単なようです。

どうすればこれを達成できますか?

4

13 に答える 13

65

コマンドを使用して正しい方法で移行を作成したAdd-Migration "Name_Of_Migration"場合は、次の手順を実行して、クリーンなスタートを切ることができます (もちろん、データの損失を伴うリセット)。

  1. Update-database -TargetMigration:0

    down メソッドが実行されたため、通常、DB は空になっています。

  2. Update-database

    これにより、DBが現在の移行に再作成されます

于 2014-02-25T10:52:48.123 に答える
33

パッケージ マネージャー コンソールからドロップ、作成、およびシードするためのシングル ライナー:

update-database -TargetMigration:0 | update-database -force

カブーム。

于 2015-09-27T14:14:29.573 に答える
5

どうですか..

static void Main(string[] args)
{
    Database.SetInitializer(new DropCreateDatabaseIfModelChanges<ExampleContext>());  
    // C
    // o
    // d
    // i
    // n
    // g
}

これはProgramming Entity Framework: Code First、Pg 28 First Editionから取り上げました。

于 2015-04-09T07:15:29.770 に答える
1

dbctx.Database.EnsureDeleted(); dbctx.Database.EnsureCreated();

于 2019-06-12T16:02:35.360 に答える
1

ASP.Net Core 5 で EF6 を使用すると、データベースの最初の初期化中に次のコマンドが便利であることがわかりました。

Remove-Migration -force; Add-Migration InitialMigration; Update-Database;

最後の移行 (唯一の移行である必要があります) を削除し、再度作成してから、データベースを更新します。Package Management Consoleしたがって、編集後にこれらの 3 つのコマンドを 1 行で入力すると、データベースDbContextが更新InitialMigrationされます。

少し厄介なのは、プロジェクトを 3 回続けてコンパイルすることですが、少なくともそれ以上の手動の手順 (移行ファイルの削除など) は必要ありません。


Remove-Databaseエンティティを削除する場合は、更新する前に発行する必要があります。したがって、行は次のようになります。

Remove-Migration -force; Add-Migration InitialMigration; Remove-Database; Update-Database;

ここで問題: データベースの削除 + 4 回の再構築を確認する必要があります。

于 2021-06-19T14:08:40.313 に答える