C# EF具有不同版本的多个数据库

C# EF具有不同版本的多个数据库,c#,mysql,entity-framework,C#,Mysql,Entity Framework,我正在开发一个API,它可以处理来自Webshop框架的数据库的不同实例。当接收到调用时,API将获取属于该特定webshop的数据库字符串,以便能够处理其数据 这一切都可以很好地与实体框架(数据库优先)配合使用。但现在我们想将其中一个Webshop升级到框架的更新版本。在这个版本中,它的数据库有一些小的变化。因为一些新列不可为null,所以我必须更改API中的模型,以便能够插入值 我们确实希望保留对框架早期版本的支持。但是现在,当我们尝试使用新的DataContext插入时,它会说某些列名无效

我正在开发一个API,它可以处理来自Webshop框架的数据库的不同实例。当接收到调用时,API将获取属于该特定webshop的数据库字符串,以便能够处理其数据

这一切都可以很好地与实体框架(数据库优先)配合使用。但现在我们想将其中一个Webshop升级到框架的更新版本。在这个版本中,它的数据库有一些小的变化。因为一些新列不可为null,所以我必须更改API中的模型,以便能够插入值

我们确实希望保留对框架早期版本的支持。但是现在,当我们尝试使用新的DataContext插入时,它会说某些列名无效,因为它们不在以前的版本中


问题是,是否有可能让Entity Framework忽略无效的列名,或者是否有可能告诉Entity Framework数据库存在于哪个版本中,以便让它使用不同的模型?

我很确定目前不可能


我要做的是为每个数据库(版本)创建一个单独的DbContext,并为每个版本创建一个POCO模型。有几种可能的解决方案:

1您需要两个数据库:第一个是新版本,第二个是旧版本,如果需要,您可以保持它们的同步

2您使用单个数据库,并且只有新版本可以直接访问它。在这种情况下,您将需要在新版本上实现一个API,来自旧版本的请求将使用此API转换为新版本请求


3您可以将旧版本升级到新版本

你说得对。在与其他人快速交谈后,我们决定将所有内容都坚持到新版本,只保留旧版本的代码基础。也许我们需要它。谢谢你的快速回答