通过单个EF 6数据层从两个数据库访问相关数据

时间:2016-11-10 15:55:08

标签: entity-framework-6

我的团队希望将用户数据与核心应用程序数据分开。我们正在使用SQL Server 2014和EF 6.x Code First。如果我们创建一个用户数据库和一个应用程序数据库,有没有办法告诉EF有关User对象和Order对象之间的关系?假设订单存储在应用程序数据库中,用户存储在Users数据库中。我们知道我们可以从Users数据库中实例化User,然后在Application数据库中查询订单列表,但我们正在寻找的是一个解决方案,就好像这些表都在同一个数据库中一样,例如检索到用户,无需第二次调用即可获得其订单列表。

基本上,我们正在寻找一种方法将实体映射到特定的上下文,然后实例化指向其各自数据库的每个上下文,并让EF对这些调用进行排序。

1 个答案:

答案 0 :(得分:1)

是的,但您需要对数据库服务器进行一些配置。

您的应用程序数据库可以在Users数据库中定义表的同义词,然后您可以将实体映射到应用程序数据库中的普通表。

就实体框架而言,它使用指向应用程序数据库的相同DbContext,但它可以从用户数据库中提取信息。

这样做的一个缺点是需要将应用程序数据库设置为指向特定的用户数据库。