使用 .Net Core 2.1 / EF Core 连接两个独立数据库中的表

Joining tables in two separate databases with .Net Core 2.1 / EF Core

我有一个 .Net Core 2.1 Web API,它与两个 MySQL 数据库通信。因此我有两个 DbContext,每个都有一个指向相关数据库的连接字符串。

在我的控制器操作之一中,我需要 return 数据,这需要两个 table 之间的连接,每个数据库一个。可以这样做吗?

例如,检索数据的简单控制器操作可能如下所示:

[HttpGet]
public IEnumerable<Employee> GetEmployees()
{
    return _context.Employees
    .Include(e => e.Departments);
}

该示例仅使用一个控制器,因为在该示例中 employeedepartment table 都在同一个数据库中,因此它们的 DbSet 都在相同的 DbContext。

但是如果 employee table 在一个数据库中而 department table 在另一个数据库中呢?然后员工和部门的 DbSet 将在不同的 DbContext 中定义。在那种情况下我该如何处理连接? (所以在上面的例子中,"Include" 工作正常?

我想我必须将两个 DbContext 都注入到这个控制器中。但我不确定从那里去哪里...

在我的例子中,两个数据库都是 MySQL 数据库,并且都在同一台服务器上,所以这是我唯一感兴趣的场景。

经过更多研究,我似乎可以使用原始 SQL 来实现这一点。然而,我最终做的是在服务器上创建一个视图,它执行所有必要的连接,然后我简单地调用这个视图...