0

在教义2中处理不同基础但使用相同模式的最佳方法是什么。目前我

  1. 为每个数据库分别生成实体,为每个元数据对象添加命名空间和数据库名称,将它们放在不同的命名空间(XXX\Base\EntityClass)中,但具有相同的别名
  2. 每个基础创建一个 EntityManager(即使它们共享相同的连接)
  3. 创建一个代理,将调用传递给多个 EntityManager 并收集响应
  4. 在一个输出中合并响应

有没有更简单的方法来处理学说2中的多个基地?

4

1 回答 1

0

我无法回答教义2,但我在 C# 中这样做。

  1. 一组实体,具有强名称和强类型,根据应用程序的其余部分需要定义。这会映射架构,但不绑定到任一数据库。
  2. 一个门面,知道您目前正在使用哪个数据库,并将请求定向到两个数据库之一......
  3. 单独的数据访问命名空间,处理一组公共操作,并将结果填充到单个实体集中,这些实体通过外观返回给请求者。
  4. 基于从数据库目录中读取 scema 的静态代码生成器非常有用。如果您可以推断出您需要了解的有关另一个数据库的所有信息,您可能希望选择一个作为模型。
  5. 动态代码生成器也很有用,用于插入、更新、where 子句等。
  6. 在框架上投入一些时间来支持所有这些。确定您是否需要在运行时保留元数据,以及它是否主要用于支持查询或更改操作。提供从任一数据库的结果集中提取数据的通用方法,以便您可以将强命名和类型化的结果集返回到您的应用程序,而无需考虑底层数据库。
于 2011-04-15T14:15:47.463 回答