質問: SQL ServerとEF Coreを使用するASP.NET Coreアプリケーションがあります。 2つのテーブルが含まれています。 Entity Framework Core移行を正常に作成し、 `Pies`という最初のテーブルのデータベースを更新しました。 次に、 `Feedbacks`という別のテーブルを追加した後、2番目の移行を作成しました。 ただし、データベースを更新しようとすると失敗し、次のエラーが表示されます。 > エラー番号:2714、状態:6、クラス:16 > データベースには「Pies」という名前のオブジェクトが既にあります。 > > `DbContext`クラスは次の`DbContext`です。 ``` public class AppDbContext : DbContext { public AppDbContext(DbContextOptions options) : base(options) { } public DbSet Pies { get; set; } public DbSet Feedbacks { get; set; } } ```
回答: 移行ファイルを削除してEF Coreの移行の記録履歴を台無しにしてしまったため、削除後に移行を再実行したため、スナップショットも汚染されています。 実行する手順は次のとおりです。 1. 残りの移行をすべて削除します 2. データベースを削除する 3. 新しい初期移行を作成する 4. 新しいデータベースを作成します。 将来、これらのエラーを回避するために、 `git`などのバージョン管理システムを使用してください。そして、移行を作成する前にコミットします。 gitはデータベースのバージョン管理を行っていないため、誤って適用されたデータベースへの移行をデータベースの`_EfMigrations`テーブルから削除する必要があることに注意してください。