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

Entity framework 实体框架-删除表或重命名字段后重建数据库,entity-framework,Entity Framework,我在想如何重建数据库时遇到了很多麻烦。 我删除了一个表,然后运行了这个命令updatedatabase-Verbose,它不会重建我的数据库 当我有一个表,然后我在我的模型(C#)中更改一个列名,然后我想重建我的数据库,以便该名称显示在数据库中,当我运行相同的命令时,不会发生任何事情 如何重建数据库?我确信除了更新数据库-Verbose之外,还有一个命令或其他东西 我正在使用Visual Studio express 2012 for Web 编辑:找不到能够重建数据库的命令,尽管我确实找到了一

我在想如何重建数据库时遇到了很多麻烦。 我删除了一个表,然后运行了这个命令updatedatabase-Verbose,它不会重建我的数据库

当我有一个表,然后我在我的模型(C#)中更改一个列名,然后我想重建我的数据库,以便该名称显示在数据库中,当我运行相同的命令时,不会发生任何事情

如何重建数据库?我确信除了更新数据库-Verbose之外,还有一个命令或其他东西

我正在使用Visual Studio express 2012 for Web

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

更新数据库是Entity Framework Migrations包的一部分,它允许您按顺序编写对数据库的更改脚本。如果不迁移到进程,该命令将无法自己执行任何操作。如果您使用的是迁移,则需要首先使用
addmigration myNewMigration
命令,并验证生成的脚本是否合理

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


您可以尝试的另一件事是运行
updatedatabase-f
,以“强制”运行迁移,即使它已经出现在
\u MigrationHistory

我正在使用迁移。刚刚用Add migration m1添加了一个新的迁移,文件中没有任何内容,只有一个up()和down()方法,里面没有任何内容。然后,我再次更新了Database-Verbose,在数据库资源管理器中,数据库没有发生任何变化。我不知道这是否正常,但当我运行我的网站时,通过“启动而不调试”,它会显示我删除的表中的信息,那么这是怎么回事?我目前正在学习ASP.NET MVC 4,所以这对我来说是全新的。事实上,当我运行网站时,它显示的信息来自一个我没有删除的表,所以在这方面,一切正常,但我仍然无法重建我的数据库,无论发生什么。up()和down()内部没有任何内容意味着没有任何需要更改数据库的模型更改。我们能在这里澄清一些事情吗。。。当你说你删除了一个表时,你的意思是你在数据库资源管理器中删除了它,并希望它能被你的应用程序放回去吗?是的,我从数据库资源管理器中删除了它,因为我认为它会再次“构建”,就像我第一次运行它时应用程序构建了数据库一样。所以是的,我希望我的申请表能把它放回去。我已经在global.aspx中尝试了一个初始值设定项,我在其中插入了:Database.SetInitializer(new DropCreateDatabaseAlways());当我构建应用程序时,数据库资源管理器中的数据库中仍然没有任何更改;代码不仅仅由构建来处理。关于迁移问题,有一个专门为迁移创建的表,即_MigrationHistory表。迁移按日期顺序运行,并将运行添加到历史记录表中。即使更改了数据库,如果某个特定迁移存在于_MigrationHistory中,也不会再次运行该迁移。