我有概念(域)模型,它在不同的数据库中以不同的方式实现。 例如,第一个db中的继承是每个类型的表,第二个 - 具体类型是表,第三个 - 所有类型属性合并在一个表中。类似于此的内容:Mapping objects to relational databases
此外,我有两个不同的数据访问层(现在) - 第一个是使用Entity Framework 5 - 数据库第一个方法,第二个是ADO.NET dynicamic DAL,我有我的DB命令工厂。
客户端应用程序将使用这些数据库,客户端应在启动时选择:
根据客户的选择,系统应使用指定的数据库,并选择DAL。
我的问题是:
答案 0 :(得分:1)
这可能太简单了。创建一个继承自所有三个基类的公共类。 EDMX中的数据库类始终是部分类,因此在同一名称空间中创建另一个部分类,否则为空。使用您的partial类生成一个接口。
您可以创建域类:
public class myCommonClass : IDatabaseClass1, DatabaseClass2, DatabaseClass3
然后在您的应用程序中使用myCommonClass。然后,您可以使用Automapper在数据库类和域类之间进行切换。 Automapper生活here。
这是一个星期天的早晨,所以回复可能有点粗略,你可能会做很多这样的事情,但是...