我有一个.Net Core 2.1 Web API,它与两个MySQL数据库进行通信。因此,我有两个DbContext,每个DbContext都有一个指向相关数据库的连接字符串。
在我的控制器动作之一中,我需要返回需要两个表之间进行联接的数据,每个表中的一个。可以这样做吗?
作为一个例子,一个简单的控制器操作来检索数据可能看起来像这样:
[HttpGet]
public IEnumerable<Employee> GetEmployees()
{
return _context.Employees
.Include(e => e.Departments);
}
该示例仅使用一个控制器,因为在该示例中,employee
和department
表都在同一数据库中,因此它们的DbSet都将在同一DbContext中。
但是如果employee
表位于一个数据库中,而department
表位于另一个数据库中怎么办?然后,将在不同的DbContext中定义员工和部门的DbSet。在这种情况下,我该如何处理联接? (因此,在上面的示例中,“包含”是否正常运行?
我想我必须将两个DbContext注入到该控制器中。但是我不确定从那里去哪里...
就我而言,两个数据库都是MySQL数据库,并且都位于同一台服务器上,所以这是我唯一感兴趣的情况。
答案 0 :(得分:1)
经过更多研究,看来我可以使用原始SQL来实现这一目标。但是,我最终要做的是在服务器上创建一个视图,该视图执行所有必要的连接,然后我简单地调用此视图...