0
  1. 有关当前数据库状态的存储信息(应用了哪些迁移)?我想它可以是“dbo.__MigrationHistory”表或者这个表只是为了记录目的?

  2. 如果我启用迁移,添加迁移并更新我的数据库。之后,我将代码签入到 SVN,另一位开发人员将其签出。另一个开发人员必须做什么来创建/更新他自己的数据库?

我看到这样的选择:

1) 立即调用 Update-Database 命令。

2) 从头开始​​做所有事情(启用-迁移、添加-迁移、更新-数据库)。

3) 除了跳过 Add-Migration 步骤之外的所有操作(它已经存在,并且为每个新开发人员再次添加它似乎很奇怪)。

我的哪个假设是正确的,或者如果没有人是正确的方法?

4

1 回答 1

1
  1. 要检索哪些迁移已应用于数据库,您可以使用Get-Migrations命令 ( reference )。

  2. 一切都取决于数据库的创建方式以及您使用的初始化程序。 如果你不熟悉这些,这篇文章值得一读。

    • 使用DropCreateDatabaseAlways初始化程序时,您实际上不需要关心更新数据库,因为您的数据库将在每次应用程序启动时被删除并重新创建。

    • 使用DropCreateDatabaseWhenModelChanges初始化程序时,如果 EF 在应用程序启动时检测到模型已更改,您的数据库将被删除然后重新创建。

    • 使用CreateDatabaseIfNotExists初始化程序或未定义初始化程序时,如果数据库不存在,则将创建它。如果数据库已经存在并且您添加了迁移,则您(以及每个检索您的代码的开发人员)需要使用该Update-Database命令来更新数据库。

    • Code-First Migrations: 引入了一个新的初始化程序MigrateDatabaseToLatestVersion,该初始化程序自动将数据库更新为定义的最新迁移。请参阅此页面的最后一部分:http: //msdn.microsoft.com/en-us/data/jj591621

于 2012-10-11T09:52:55.420 回答