0

我有概念(域)模型,它在不同的数据库中以不同的方式实现。例如,第一个数据库中的继承是每个类型的表,第二个 - 具体类型是表,第三个 - 所有类型的属性都合并到一个表中。类似的东西:将对象映射到关系数据库

此外,我有两个不同的数据访问层(目前)-首先是使用实体框架 5-数据库优先方法,其次是 ADO.NET 动态 DAL,其中我有我的 DB 命令工厂。

客户端应用程序将使用这些数据库,客户端应在启动时选择:

  1. 要连接的数据库(连接字符串)和
  2. 数据访问层(EF 或经典 ADO.NET)来使用数据。

根据客户的选择,系统应使用指定的数据库,并选择 DAL。

我的问题是:

  1. 我如何管理实体框架以根据连接字符串(第一个连接字符串 - 三个表,第二个两个,第三个等)执行不同的(动态)映射细节并将它们映射到相同的实体?
  2. 根据您的经验,我还有什么需要注意的吗?
4

1 回答 1

1

这可能太简单了。创建一个继承自所有三个基类的通用类。EDMX 中的数据库类始终是分部类,因此在同一名称空间中创建另一个分部类,否则为空。使用您的分部类来生成接口。

您可以创建一个域类:

public class myCommonClass : IDatabaseClass1, DatabaseClass2, DatabaseClass3

然后在您的应用程序中使用 myCommonClass。然后,您可以使用 Automapper 在数据库类和域类之间进行切换。Automapper 住在这里

这是一个星期天的早晨,所以回复可能有点粗略,而且你可能已经做了很多这样的事情,但是......

于 2014-03-02T11:44:25.000 回答