实体框架 - 删除表或重命名字段后重建数据库

时间:2013-08-11 23:19:45

标签: entity-framework

我在尝试找出如何重建数据库方面遇到了很多麻烦。 我删除了一个表,然后运行了这个命令 update-Database -Verbose ,它没有重建我的数据库。

当我有一个表,然后我更改我的模型(C#)中的列名,然后我想重建我的数据库,以便名称显示在数据库中,当我运行时没有任何反应同样的命令。

如何重建我的数据库?除了 update-Database -Verbose 之外,我确定还有一个命令或其他东西。

我正在使用Visual Studio Express 2012 for Web。

编辑:无法找到能够重建我的数据库的命令,尽管我确实找到了一种简单的方法来完成我想要的操作。 您可以在模型中删除表或重命名列,它将始终重建您的数据库。在解决方案资源管理器中,您将找到一个显示“显示所有文件”的图标,按下它并打开文件夹App_Data,在那里您将看到您的数据库文件,删除它并重新运行您的应用程序,它将再次构建数据库,包含您在代码中对模型所做的所有更改。因此,不需要在Web.config文件中更改目录和.mdf名称的部分。

1 个答案:

答案 0 :(得分:1)

Update-Database是Entity Framework Migrations包的一部分,它允许您按顺序编写对数据库的更改。如果没有要处理的迁移,该命令将不会自行执行任何操作。如果您正在使用迁移,则需要首先使用Add-Migration myNewMigration命令,并验证生成的脚本是否有意义。

如果您不使用迁移,则可以使用更简单的数据库选项(例如DropCreateDatabaseIfModelChanges())来对应上下文类。

您可以尝试的另一件事是运行Update-Database -f以“强制”迁移运行,即使它已经存在于_MigrationHistory