DropCreateDatabaseIfModelChanges(MVC3)的最佳替代方法是什么?

时间:2013-03-11 13:39:44

标签: asp.net-mvc-3

我已经检查了其他问题并在谷歌搜索过,但我找到了很多解决方案......

什么是最好的?

我需要在DataModel更改时更改表,我需要一个自动解决方案(如DropCreateDatabaseIfModelChanges那样..

非常感谢所有回复

3 个答案:

答案 0 :(得分:1)

您可以进行CodeFirst迁移。 CodeFirst Migrations。你需要EF 5二进制文件。

在程序包管理器控制台中运行Enable-Migrations –EnableAutomaticMigrations命令

Add-Migration将根据您对模型所做的更改来支持下一次迁移。 Update-Database将对数据库应用任何挂起的更改。

答案 1 :(得分:0)

要更新Entity Framework EDMX并将其与数据库更改同步,请双击VS2010 Solution Explorer中的EDMX。这会使设计者(模型浏览器窗口显然就是所谓的)与实体的类布局一起显示出来。右键单击设计器表面上的任意位置,您将在对话框中看到“从数据库更新模型”中的选项。单击此按钮,您将进入更新向导,您可以在其中选择要添加的数据库对象(如果是新的) ),但默认情况下会刷新现有对象。

向导似乎没有做的一件事是从现有对象中删除列。可能是某种安全机制,但是如果你从数据库中删除了这个列,你真的想把它保留在你的实体中吗?啊,谁知道呢。

答案 2 :(得分:0)

它始终不能很好地运作。在我的情况下,我尝试用模型编辑器手动创建任何东西,所以每次我修改我的数据库模型,我打开EDMX编辑器,我选择所有实体,然后我删除它们,我右键单击模型,我选择选项:从更新数据库。 出现对象列表时,我选择所有表格,然后选择下一个。它更新模型。

相关问题