如何从头开始删除和重新创build一个现有的EF代码第一个数据库

我在VS 2012中使用EF Code First和EF 5。我使用PM update-database命令,我有一个简单的种子方法来填充一些带有示例数据的表。

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

我怎样才能做到这一点?

如果我理解的话

如果你想start clean

1) 手动删除你的Db – 无论它在哪里(我假设你有你的连接sorting),或清空它,但更容易/更安全的是一起删除它 – 因为有system __MigrationHistory表 – 你也需要删除。

2) 删除所有migration filesmigration files下 – 并像数字等命名 – 删除所有,

3) 重build你的项目包含迁移(和其他) – 并确保你的项目设置(configuration)自动生成(有时可能会导致问题 – 但不太可能),

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

如果您使用命令Add-Migration "Name_Of_Migration"创build了正确的迁移方法,那么您可以执行以下操作来获得一个干净的启动 (重置, 当然还有数据丢失 ):

  1. Update-database -TargetMigration:0

    通常你的数据库是空的,因为down方法被执行。

  2. Update-database

    这将重新创build您的数据库到您目前的迁移

单一的class轮从软件包pipe理器控制台中删除,创build和种子:

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

KABOOM。

怎么样 ..

 static void Main(string[] args) { Database.SetInitializer(new DropCreateDatabaseIfModelChanges<ExampleContext>()); // C // o // d // i // n // g } 

我从编程entity framework中select了这个:Code First ,Pg 28第一版。

采取这些步骤:

  1. 删除那些应该从上下文中删除的对象// Dbset<Item> Items{get;set;}并在Nuget Console中运行这些命令
  2. add-migration [contextName]
  3. update-database -verbose

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

如果您按照本教程创build了数据库: https : //msdn.microsoft.com/en-au/data/jj193542.aspx

…那么这可能工作:

  1. 删除项目目录中的所有.mdf.ldf文件
  2. 转到查看/ SQL Server对象资源pipe理器,并从(localdb)\ v11.0子节点删除数据库。 另请参阅https://stackoverflow.com/a/15832184/2279059