【发布时间】:2014-02-11 15:11:18
【问题描述】:
我有一个在任何地方都找不到答案的特定场景。
我想使用首先由 VistaDB 支持的实体框架代码。
存储的数据是用户特定的设置等,因此会有许多数据库副本,但它们永远不会在用户之间共享。但它们存储在本地存储中,与应用程序版本无关。
我可以很好地设置初始模型,并且前向迁移也很好(尽管我还不完全了解如何在运行时在每个用户桌面上执行此操作)。
我们通常会将应用程序发布给少数用户,但如果出现问题,则会回滚到以前的版本。
如果用户使用更新的模型运行 2.0 版应用程序,并且他们自动迁移他们的设置数据库,那么到目前为止一切顺利。
但现在我们将它们回滚到 1.0 版。我的理解是随着模型的前滚,1.0 代码不能再访问数据库。那么解决办法是什么?
我可以在每次更新模型时创建一个新的设置数据库,但是数据如何从旧的迁移过来呢?这也意味着在回滚时会丢失在新版本中所做的设置更改,反之亦然。
我真正想要的是让以前的版本(假设架构兼容)忽略模型更改,就像在 XML 中一样。即,如果您添加新列(或 XML 元素),旧代码会忽略它,因为它看不到它。但它仍然有效。对于这个用例,也许我只需要原始数据库访问而不是 EF?
【问题讨论】:
标签: entity-framework ef-code-first entity-framework-6