我们有一个产品在第三方数据库上运行,该数据库具有无法修改的架构。在每个安装站点上,该数据库可以有多种版本。有些列可能存在于一个数据库中,但不存在于其他数据库中,或者可能具有不同的数据类型。
EF解决此问题的最佳做法是什么?显然,这将需要考虑不同版本的情况编码,但是我的具体问题是如何在逻辑上尽可能少地进行情况编程来处理此情况。对于大多数数据库调用而言,所做的更改不会影响我们,我希望保留尽可能多地编写一个查询的功能。
我们能够在运行时知道数据库的版本,因此我们无需进行任何侦查就可以弄清楚这一点。我们正在运行Entity Framework 6,但是距离项目还不算太远,因此,如果更高版本的EF可以更好地解决此问题,我们可以进行切换。
如果这是重复的,请更正我,但是我只能找到与一次访问多个数据库有关的现有问题。在这个问题中,我只希望传递一个数据库,而不必指定“ DbContextV10”和“ DbContextV11”。生成一个通用的接口在某种程度上可以工作,但这实际上取决于版本更改的幅度,我们尚不知道该更改的大小,并且我们希望将来减少工作量。