ef-code-first - 有效迁移如何删除和重新创建现有有效的代码第一个数据库

  显示原文与译文双语对照的内容

我在 vs 2012中使用 EF 5的EF代码。 我使用 PM update-database 命令,并使用简单的种子方法来填充一些表的示例数据。

我想删除并重新创建 x.mdb. 更新历史似乎不同步。 如果在上下文中注释掉所有 DBSets,update-database 会运行,但会在数据库中留下一些表。 因为我在数据库中没有有价值的数据,所以最简单的方法是重置所有。

我怎么才能做到这一点?

时间: 原作者:

如果我理解正确的话。

如果你想要 start clean:

1 ) 手动删除数据库 - 无论它是( 我想你已经把你的连接),还是清空它,但是更容易/更安全地删除它- 你需要删除它- 你需要删除。

2 移除所有 migration files under under under,并命名为数字 等等,将它们全部移除,

3 重新构建包含迁移的项目,并确保项目设置为( 配置),以自动构建( 有时可能会引起问题- 但你不可能),

4 ) 再次运行 Add-Migration Initial - 然后运行 Update-Database

原作者:

如果你使用命令 Add-Migration"Name_Of_Migration" 正确创建迁移,那么你可以执行以下操作来获得一个干净的开始:

Update-database -TargetMigration:0

一般情况下,你的数据库是空的,因为。

Update-database

这将重新创建你的数据库到当前的迁移

原作者:

从软件包管理器控制台删除,创建和种子的单一衬垫:


update-database -TargetMigration:0 | update-database -force



Kaboom 。

这样吧。


static void Main(string[] args)


{


 Database.SetInitializer(new DropCreateDatabaseIfModelChanges<ExampleContext>()); 


//C


//o


//d


//i


//n


//g


}



我从编程 Entity Framework 中选择了这个: 代码第一,Pg 28第一版。

原作者:

执行以下步骤:

  • 删除那些应该从上下文//Dbset<Item> Items{get;set;} 中删除的对象,并在Nuget控制台运行这些命令
  • 添加迁移 [contextName ]
  • 更新数据库 -verbose

它将删除上下文中不存在但已经在数据库中创建的表

原作者:

对于 EntityFrameworkCore,可以使用以下命令:


Update-Database -Migration 0



这将从数据库中删除所有迁移。 然后你可以使用:

 
Remove-Migration



 

删除迁移最后你可以重新创建迁移并将它的应用到数据库。

在 EFCore v2.1.0上测试

...