在LocalDB中重置EF代码优先数据库

时间:2012-07-03 09:02:36

标签: c# entity-framework ef-code-first reset localdb

我正在使用Entity Framework 5.0 RC和预先配置了VS 2012 RC的LocalDB数据库来进行代码优先数据库的原型设计和测试。

在更改我的代码优先数据库并运行“update-database”几个周期后,我做了一个巨大的改变,自动迁移失败了。我不关心解决这个冲突,因为这只是原型设计,所以丢失数据很好。

如何重置或删除数据库? 重置还必须重置迁移表,这似乎在Visual Studio中的服务器资源管理器中隐藏。

2 个答案:

答案 0 :(得分:8)

在Visual Studio中删除整个数据库

  1. 打开SQL Server对象资源管理器
  2. 找到您正在使用的数据库右键单击并选择删除
  3. 选中两个复选框(删除备份和还原历史记录,然后关闭现有连接),然后单击确定
  4. 再次运行程序,它应该重新创建dabase

答案 1 :(得分:1)

到目前为止,这是我找到的最佳方法。

  1. 使__MigrationHistory成为非系统表。
  2. 执行SQL脚本以删除所有表。
  3. 要更改__MigrationHistory表,请参阅this article以处理现有数据库和使用代码优先创建的新数据库。

    SQL脚本如下:

    EXEC sp_MSforeachtable @command1 = "DROP TABLE ?";
    

    我正在使用Database .NET v4 Free来运行此SQL脚本,因为我的Visual Studio 11 RC副本不允许我出于某种原因在LocalDB上运行查询。此外,我需要运行该脚本两次,因为一些外键会丢弃所有表。我没有费心去解决这个问题,因为它看起来效果不错。