使用.Net Core 2.1 / EF Core

时间:2018-07-26 13:16:06

标签: dbcontext dbset ef-core-2.1 .net-core-2.1

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

在我的控制器动作之一中,我需要返回需要两个表之间进行联接的数据,每个表中的一个。可以这样做吗?

作为一个例子,一个简单的控制器操作来检索数据可能看起来像这样:

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

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

但是如果employee表位于一个数据库中,而department表位于另一个数据库中怎么办?然后,将在不同的DbContext中定义员工和部门的DbSet。在这种情况下,我该如何处理联接? (因此,在上面的示例中,“包含”是否正常运行?

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

就我而言,两个数据库都是MySQL数据库,并且都位于同一台服务器上,所以这是我唯一感兴趣的情况。

1 个答案:

答案 0 :(得分:1)

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