Sql server 我能';t使用实体框架核心更新数据库
我有一个ASP.NET核心应用程序,它使用SQL Server和EF核心。它包含两个表。我成功地创建了实体框架核心迁移,并用它更新了第一个名为Sql server 我能';t使用实体框架核心更新数据库,sql-server,asp.net-core,entity-framework-core,Sql Server,Asp.net Core,Entity Framework Core,我有一个ASP.NET核心应用程序,它使用SQL Server和EF核心。它包含两个表。我成功地创建了实体框架核心迁移,并用它更新了第一个名为Pies的表的数据库 然后,在我添加了另一个名为Feedbacks的表之后,我创建了第二个迁移 但是,当我尝试更新数据库时,它失败了,我得到以下错误: 错误编号:2714,状态:6,类别:16 数据库中已存在名为“Pies”的对象 以下是DbContext类: public class AppDbContext : DbContext { publ
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; }
}
公共类AppDbContext:DbContext
{
公共AppDbContext(DbContextOptions选项):基本(选项)
{
}
公共DbSet Pies{get;set;}
公共数据库集反馈{get;set;}
}
因为您删除了一个迁移文件,弄乱了EF Core迁移的记录历史,并且您的快照也被污染了,因为您在删除一个迁移文件后重新运行了迁移
以下是您应该采取的步骤:
将来为了避免这些错误,请使用类似于
git
的版本控制系统。在创建任何迁移之前提交。注意:您需要从数据库的\u EfMigrations
表中删除错误应用到数据库的迁移,因为git不控制数据库的版本。当数据库表中的数据与数据库中的文件之间存在差异时,会发生此错误
您很可能创建了一次数据库,然后删除了偏头痛文件夹您在描述的步骤之间做了什么?就像删除数据库中以前的迁移文件或表一样?我已经删除了最后一次迁移,并再次添加了它,但有同样的问题谢谢@Anton我已经使用git了,因此,我将回到前一个问题version@SaTech如果返回到以前的版本,请确保遵循我提到的最后一个步骤,并删除以前应用到数据库的迁移。除了那个馅饼。id将等于迁移的名称。谢谢@Reza yes,当我在SQL Server对象资源管理器中查看反馈表时,它不会出现在数据库中