首页 > 解决方案 > 实体框架:多个数据库版本

问题描述

我们有一个产品在第三方数据库之外运行,该数据库具有我们无法修改的模式。在每个安装站点,该数据库可能有多种版本。某些列可能存在于一个数据库中,但不存在于其他数据库中,或者可能具有不同的数据类型。

处理此问题的 EF 最佳实践是什么?显然,它需要一些具有不同版本的情景编码,但我的具体问题是如何在逻辑中尽可能少地进行情景编程来处理这个问题。对于大多数数据库调用,更改不会影响我们,我希望保留尽可能多地编写一个查询的能力。

我们能够在运行时知道数据库的版本,所以我们不需要做任何调查来弄清楚这一点。我们正在运行 Entity Framework 6,但我们对项目的了解并不太远,所以如果以后版本的 EF 可以更好地解决这个问题,我们可以切换。

如果这是重复的,请纠正我,但我只能找到与一次访问多个数据库相关的现有问题。在这个问题中,我希望只传递一个数据库,而不必指定“DbContextV10”和“DbContextV11”。生成一个通用接口在某种程度上会起作用,但它实际上取决于版本更改的幅度,我们不知道未来的情况,我们希望将来尽量减少我们的工作。

标签: c#.netentity-framework

解决方案


推荐阅读