20

我正在学习 EF4.3 迁移,我已经阅读了 ado.net 团队博客中的这两篇文章:

http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-code-based-migrations-walkthrough.aspx

http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-automatic-migrations-walkthrough.aspx

但是看了这两篇文章,我还是不太清楚它们有什么区别,什么时候使用基于代码的迁移,什么时候使用自动迁移。任何人都可以指导我吗?

谢谢!

4

2 回答 2

22

这些文章非常清楚,因此如果您不了解其中的区别,则意味着您在阅读文本时没有集中注意力,并且您也可能没有自己编写示例来遵循文本。

自动迁移只是一个神奇的工具。您运行您的应用程序,您将始终获得最新版本的数据库,因为 EF 将在每次需要时执行隐式迁移 - 在最纯粹的版本中,您无需执行任何操作,只需启用自动迁移。

自动迁移有时是不够的。您需要为迁移代码添加一些自定义或运行一些额外的 SQL 命令,例如转换数据。在这种情况下,您可以通过调用Add-Migration命令添加基于代码的显式迁移。显式迁移显示将在迁移期间执行的所有迁移代码(没有额外的魔法)。

如果您关闭自动迁移,则必须始终定义显式迁移以在明确定义的显式步骤中定义数据库升级过程。这对于需要同时升级和降级到特定版本的场景特别有用。

于 2012-05-30T09:04:34.653 回答
-2

在MSDN上有更多关于您的问题的信息。他们不建议在团队开发方案中混合使用自动迁移和基于代码的迁移。但我不清楚它会产生什么问题。

于 2014-02-08T16:35:34.400 回答