我尝试将代码首次迁移应用到我的方案中,但似乎迁移背后的理性与我的不兼容。
考虑这种情况: 我有一个应用程序和几个用户。我是版本1.我在1.1版的模型中添加了一些功能,但我的一些用户不会升级。现在我为版本1.2添加其他功能,有些人将从1升级,其他人从1.1升级。我需要所有这些来无缝升级他们的数据库。 I.E.升级是在运行时根据当前模型与当前数据库之间的差异计算的,而不是在当前模型和上次迁移的开发时间。
我出错了吗?这种情况是否受支持?
答案 0 :(得分:3)
例如,如果您的数据库映射到版本1模型并发出
,则支持此方案Update-Database
来自程序包管理器控制台的命令或使用以下代码:
var dbMigrator = new DbMigrator(new Configuration());
dbMigrator.Update();
通过运行所有挂起的迁移步骤,数据库将更新到最新版本。
当然,这需要在版本1和版本1.1之间创建迁移步骤,然后在将模型更改为版本2时,创建另一个从版本1.1迁移到版本2的迁移步骤。