我无法使用Entity Framework Core更新数据库

SaT*_*ech 5 sql-server entity-framework-core asp.net-core

我有一个使用SQL Server和EF Core的ASP.NET Core应用程序。它包含两个表。我成功创建了Entity Framework Core迁移,并使用它来更新了名为的第一个表的数据库Pies

然后,在添加另一个名为的表之后Feedbacks,创建了第二个迁移。

但是,当我尝试更新数据库时,它失败并且出现以下错误:

错误号:2714,状态:6,类:16
数据库中已经存在一个名为“ Pies”的对象。

这是DbContext课程:

public class AppDbContext : DbContext
{
    public AppDbContext(DbContextOptions<AppDbContext> options) : base(options)
    {
    }

    public DbSet<Pie> Pies { get; set; }
    public DbSet<Feedback> Feedbacks { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Ant*_*hik 3

由于您通过删除迁移文件弄乱了 EF Core 迁移的记录历史记录,并且您的快照也受到污染,因为您在删除迁移后重新运行了迁移。

以下是您应该采取的步骤:

  1. 删除所有剩余的迁移
  2. 删除数据库
  3. 创建新的初始迁移
  4. 创建一个新数据库。

将来为了避免这些错误,请使用像git. 在创建任何迁移之前提交。请注意,您需要从_EfMigrations数据库的表中删除错误应用到数据库的迁移,因为 git 不对您的数据库进行版本控制。