我正在开发一个 API,该 API 可与来自 Webshop 框架的数据库的不同实例一起使用。收到调用时,API 会获取属于该特定网上商店的数据库字符串,以便它能够处理其数据。
这一切都适用于 Entity Framework (数据库优先)。但是现在我们想将其中一个网上商店升级到更新版本的框架。在那个版本中,它的数据库有一些小的变化。因为一些新列不可为空,所以我必须更改 API 中的模型,以便能够插入值。
我们真的很想保留对以前版本框架的支持。但是现在当我们尝试使用新的 DataContext 插入时,它说某些列名无效,因为它们不在以前的版本中。
问题是是否有可能以某种方式让 Entity Framework 忽略无效的列名,或者是否有可能告诉 Entity Framework 数据库存在于哪个版本以让它使用不同的模型?
最佳答案
有几种可能的解决方案:
1 您需要两个数据库:第一个是新版本,第二个是旧版本,如果需要,您可以保持它们同步。
2 您使用单个数据库,并且只有新版本可以直接访问它。在这种情况下,您将需要在新版本上实现一个 API,并且来自旧版本的请求将使用此 API 转换为新版本请求。
3 您可以将旧版本升级到新版本。
关于c# - EF 多个不同版本的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39080682/