从模型和当前数据库之间的差异生成EF迁移

时间:2014-06-18 10:53:41

标签: entity-framework ef-code-first ef-migrations

我尝试将代码首次迁移应用到我的方案中,但似乎迁移背后的理性与我的不兼容。

考虑这种情况: 我有一个应用程序和几个用户。我是版本1.我在1.1版的模型中添加了一些功能,但我的一些用户不会升级。现在我为版本1.2添加其他功能,有些人将从1升级,其他人从1.1升级。我需要所有这些来无缝升级他们的数据库。 I.E.升级是在运行时根据当前模型与当前数据库之间的差异计算的,而不是在当前模型和上次迁移的开发时间。

我出错了吗?这种情况是否受支持?

1 个答案:

答案 0 :(得分:3)

例如,如果您的数据库映射到版本1模型并发出

,则支持此方案
Update-Database
来自程序包管理器控制台的

命令或使用以下代码:

var dbMigrator = new DbMigrator(new Configuration());
dbMigrator.Update();

通过运行所有挂起的迁移步骤,数据库将更新到最新版本。

当然,这需要在版本1和版本1.1之间创建迁移步骤,然后在将模型更改为版本2时,创建另一个从版本1.1迁移到版本2的迁移步骤。