我有一个特定的场景,我无法在任何地方找到答案。
我想使用VistaDB首先支持的实体框架代码。
存储的数据是用户特定的设置等,因此会有许多数据库副本,但它们永远不会在用户之间共享。但它们存储在本地存储中,与应用程序版本无关。
我可以设置初始模型,并且正向迁移很好(尽管我还不完全了解如何在运行时在每个用户桌面上执行此操作)。
我们经常会将应用程序发布给少数用户,但如果出现问题,我们会回滚到之前的版本。
如果用户使用更新的模型运行应用版本2.0,他们会自动将他们的设置数据库向前迁移到目前为止很好。
但现在我们将它们推回到1.0版。我的理解是,随着模型的推进,1.0代码无法再访问数据库。那么解决方案是什么?
每次我们更新模型时都可以创建一个新的设置数据库,但是后来如何从旧模型中迁移数据?这也意味着在回滚时会丢失对新版本设置的更改,反之亦然。
我真正想要的是模型更改被以前的版本忽略(假设架构兼容性)就像在XML中一样。即,如果添加新列(或XML元素),旧代码将忽略它,因为它无法看到它。但它仍然有效。也许我只需要原始数据库访问而不是这个用例的EF?
答案 0 :(得分:0)
我不确定这对VistaDB是否有效,但是使用EF对数据库进行角色扮演 看到这个堆栈溢出问题EF Migrations: Rollback last applied migration?
或者如果链接断开Update-Database -TargetMigration:“要回滚到的迁移的名称”