如何使用Entity Framework 4.2执行数据库迁移?

时间:2011-11-06 18:13:49

标签: c# database asp.net-mvc-3 entity-framework migration

我刚刚开始深入研究ASP.net MVC3。我来自Django背景。我喜欢Django的一件事是名为“South”的附加组件。它允许我在代码中修改我的模型,然后运行命令,它会找出已更改的内容,并相应地更新数据库。

如果我在EF4中使用“代码优先”方法添加,删除或重命名字段,会发生什么?它只是添加或删除字段,就是这样吗?如果我想要添加新字段,然后运行Linq-to-SQL查询来填充新字段,然后然后删除旧字段,该怎么办? 我想要一个这样的记录,这样当我在生产服务器上部署更改时,它将按顺序运行这3个命令。

有类似的东西吗?或者人们如何处理这样的情况? (这很常见......)


修改:找到一些链接。

2 个答案:

答案 0 :(得分:2)

会发生什么取决于您的初始化,我将使用点网方式讨论“标准”。

快速深入研究:

Database Initialization Strategy   - 查看顶部,这里使用“DropCreateDatabaseAlways”,因此它将始终删除数据库并重新创建它(您还有其他可能性)。 - 它说明了EF应该如何对数据库变化做出反应。

以下是可能的Database Initializations

如果您想要迁移,有两种方法: - Magic - No-Magic

你应该知道的是,迁移实际上是1周(EF 4.2),它已经在EF 4.1中实现了,虽然没有完全支持(不同数据库,......),但它正在改进。

这取决于你有多少时间,但我正在等待实施4.2和EF迁移,我将在本周末的“测试项目”中实现它,看看一切是否顺利并回应到Ado.Net团队博客(参见Magic - No-Magic上的链接)。虽然我认为不会有任何问题。

祝你好运:)

答案 1 :(得分:2)

以下是Microsoft MVP David Hayden的优秀教程:
http://www.davidhayden.me/blog/asp.net-mvc-4-and-entity-framework-database-migrations

不确定4.2 - 但我安装了最新的EF(4.3.1),它就像一个魅力。

非常令人印象深刻 - 而且我是Rails的家伙:P