我有两个数据库,它们在架构上几乎相同,但在其中保存的数据中是分开的。消费应用程序不需要了解这些差异,因此我正在创建一个具有实体框架模型的服务,但我希望它返回单一类型。例如:
**DatabaseA** -> EFModelA
- Customers
- Orders
**DatabaseB** -> EFModelB
- Customers
- Orders
我希望能够Customer
通过 a 调用返回一个类,而不是返回一个EFModelA.Customer
or EFModelB.Customer
。
我已经研究了两种方法来做到这一点,但无法确定哪种方式在维护方面提供的阻力最小。他们是:
- 创建 DatabaseA 中数据的统一视图,该视图将 DatabaseB 中的数据联合起来,因此他们的应用程序只能看到一个实体集。缺点是如何确保它们的键是唯一的,但我可以添加一个额外的字段来表示它来自哪个数据库。
- 有 2 个单独的 EF 模型,并有某种方式编写脚本(例如 T4 模板)等效类型的组合模型,然后在两个 EF 类型和组合类型之间实现映射代码。
有没有其他人遇到过这个问题,你是如何解决这个问题的?如果没有,您将如何解决这个问题?