处理多个数据库和实体框架中的数据

时间:2013-11-15 21:04:32

标签: .net sql entity-framework

我有以下设置(显然图表显示了简化版本)

enter image description here

我想消除数据库之间重复的公共数据,在我的例子中,这是DB A中的客户表。在我的其他应用程序中,我只存储了CustomerGuid。我正在考虑添加一个约束来确保CustomerGuid有效。

到目前为止一切顺利。(或者可能不是)

问题是当我在我的应用程序层时。我需要创建两个上下文,然后在需要检索客户的姓名和地址时加入内存。

这是最好的方法吗?它似乎比复制每个数据库中的表更好,但现在我不太确定。

我的选择如下:

  1. 创建视图以加入DB B,C(我倾向于这个,但问题是我不能在从多个数据库中的表中绘制的视图上形成全文索引)

  2. 继续处理多个EDMX并在需要时加入内存。 (全文搜索也是PITA)

  3. 在每个数据库的新表中复制数据(似乎很icky)

  4. 链接服务器? EF如何解决这个问题?

  5. 我没有一个直截了当的问题,(所以我可能会被拒绝投票)但是我想引出一些反馈和建议,说明哪种方法最好和/或可能是我没想过的方法的。什么是最好的实践认可?

1 个答案:

答案 0 :(得分:1)

在使用DDD和ORM等现代解决方案进行设计时,您应该尝试“放弃”旧的OO方式。只要您可以设计以确保数据通常是相同的,那么在多个地方拥有数据确实没有问题。

阅读有关Julie Lerman的this文章也有同样的困境。

链接服务器非常酷,但不应该是前端依赖。