質問: 私はエンティティフレームワークのコアを使用してasp.netコアmvcのWebサイトを持っています。 私は最初にどのように起こったのかわかりませんが、私はエラーを過ぎて取得することはできません: "AspNetRolesという名前のオブジェクトがすでにデータベースにあります" 私はすべてのマイグレーション.csファイルを削除し、ゼロから始めてデータベースを削除しました。 私はその後、 `add-migration MyInitialMigration` 同じエラー その後、データベースをもう一度削除し、直接`update-database`を試しました(移行を追加せずに) 依然として同じエラー 私はappsettings設定文字列を新しい、存在しないデータベースを指すように変更しようとしました。 まだ同じエラー! 以前はMVC5 / EF6でこのエラーが発生しましたが、この回答と同じ方法で解決しました。データベースに名前が既に付けられているオブジェクトがあります `-Add-Migration Initial -IgnoreChanges` ただし、EFCoreでは-IgnoreChangesがサポートされていません 以前はEF6上で移行を追加し、Up / Downのすべてを削除して空の移行を実行することで解決しました。これはEFCoreでは機能しませんでした どうすればいいですか?私は移行テーブルを確認しましたが、毎回データベース全体が作成されていても、それらは常に空です。ちょうどそれを移行テーブルに記録していないようです
回答: 私の問題が見つかりました。 私はEntityFrameworkからappsettingsを読み込むためにこのチュートリアルに従っていました: https ://docs.asp.net/en/latest/fundamentals/configuration.html#example-entity-framework-settings EntityFrameworkConfigurationProviderには、 `dbContext.Database.EnsureCreated();`を持つ`public override void Load()`あり`dbContext.Database.EnsureCreated();`および`CreateAndSaveDefaultValues` それらの2つの間で、移行を追跡せずにデータベースを初期化していたように見えます。 私はそれらをコメントし、移行を実行し、それは正常に働いた。うまくいけば、移行を実行するたびにコメントアウトする必要はありません。/