我正在开发一个API,它可以与Webshop框架中的不同数据库实例一起使用。收到呼叫时,API会获取属于该特定网上商店的数据库字符串,以便能够使用它的数据。
这一切都与Entity Framework(数据库优先)相得益彰。但现在我们想将其中一个网上商店升级到更新版本的框架。在该版本中,它的数据库有一些小的变化。由于某些新列不可为空,因此我必须更改API中的模型,以便能够插入值。
我们真的希望继续支持以前版本的框架。但是现在当我们尝试使用新的DataContext插入时,它表示某些列名称无效,因为它们不在以前的版本中。
问题是,是否有可能让实体框架忽略无效的列名称或者是否可以告诉实体框架数据库所在的版本是否允许它使用不同的模型?
答案 0 :(得分:2)
有几种可能的解决方案:
1您需要两个数据库:第一个是新版本,第二个是旧版本,如果需要,您可以保持同步。
2您使用单个数据库,只有新版本可以直接访问它。在这种情况下,您需要在新版本中实现API,旧版本的请求将使用此API转换为新版本请求。
3您可以将旧版本升级到新版本。
答案 1 :(得分:1)
我很确定目前不可能。
我要做的是为每个数据库(版本)创建单独的DbContext,并为每个版本创建1个POCO模型