EF Migration对象已存在错误

Ari*_*nit 14 c# asp.net-mvc entity-framework ef-code-first

我正在使用Entity Framework开发一个ASP.NET MVC项目,其代码首先来自数据库.我得到了数据库中每个表的模型.我在模型中进行了一些更改,启用了迁移,当我初始化迁移时出现错误:

数据库中已经存在一个名为"TableName"的对象."

我试过update-database -force但没有帮助.初始迁移会创建已存在的表!

如何进行初始迁移应用模型上的更改而不是从头开始创建表?

在这种情况下,在数据库和模型之间同步更改的最佳做法是什么?

Amr*_*laa 27

试着跑

Add-Migration InitialCreate –IgnoreChanges 
Run Code Online (Sandbox Code Playgroud)

包管理器控制台中的命令.这将创建一个空迁移,将当前模型作为快照.然后运行

Update-Database 
Run Code Online (Sandbox Code Playgroud)

包管理器控制台中的命令.这将将InitialCreate迁移应用于数据库.由于实际迁移不包含任何更改,因此只需向__MigrationsHistory表添加一行,指示已应用此迁移.

看到这个

然后更改模型并添加迁移.

另一种方法是简单地在up和down方法上注释所有代码

  • Add-Migration:找不到与参数名称“IgnoreChanges”匹配的参数。 (3认同)

Dan*_*ikh 6

对我来说最好和有效的想法是注释初始迁移文件的 UP 和 Down 函数中的所有代码,然后触发 dotnet ef database update它应该可以正常工作,确保在注释掉初始迁移之前更新迁移