实体框架代码首先在数据库迁移后回滚

时间:2014-01-21 20:08:48

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

我有一个特定的场景,我无法在任何地方找到答案。

我想使用VistaDB首先支持的实体框架代码。

存储的数据是用户特定的设置等,因此会有许多数据库副本,但它们永远不会在用户之间共享。但它们存储在本地存储中,与应用程序版本无关。

我可以设置初始模型,并且正向迁移很好(尽管我还不完全了解如何在运行时在每个用户桌面上执行此操作)。

我们经常会将应用程序发布给少数用户,但如果出现问题,我们会回滚到之前的版本。

如果用户使用更新的模型运行应用版本2.0,他们会自动将他们的设置数据库向前迁移到目前为止很好。

但现在我们将它们推回到1.0版。我的理解是,随着模型的推进,1.0代码无法再访问数据库。那么解决方案是什么?

每次我们更新模型时都可以创建一个新的设置数据库,但是后来如何从旧模型中迁移数据?这也意味着在回滚时会丢失对新版本设置的更改,反之亦然。

我真正想要的是模型更改被以前的版本忽略(假设架构兼容性)就像在XML中一样。即,如果添加新列(或XML元素),旧代码将忽略它,因为它无法看到它。但它仍然有效。也许我只需要原始数据库访问而不是这个用例的EF?

1 个答案:

答案 0 :(得分:0)

我不确定这对VistaDB是否有效,但是使用EF对数据库进行角色扮演 看到这个堆栈溢出问题EF Migrations: Rollback last applied migration?

或者如果链接断开Update-Database -TargetMigration:“要回滚到的迁移的名称”