EF核心和多个数据库

Hec*_*res 7 c# entity-framework-core asp.net-core

我有一个带有三个数据库的旧系统

  1. 供应商
  2. 自定义代码
  3. 日志数据

供应商包含来自我们的供应商应用程序的控制和日志数据。

CustomCode包含许多连接到Vendor和LogData的视图和存储过程

LogData包含我们CustomCode流程的结果。例如:每日/每周/每月摘要和结果。

我正在写一个将在地图上绘制数据的网站。单位列表来自CustomCode中的视图。摘要记录来自LogData,而单个日志点则通过CustomCode中存储的proc从供应商处检索。

我从用于CustomCode的DbContext开始,但是似乎无法导航到LogData的第二个DbContext中的属性。

我可以在不同上下文中的对象之间链接导航属性吗?

我可以一次连接多个数据库吗?

请注意,这与多租户或多模式无关

Nko*_*osi 5

我可以在不同上下文中的对象之间链接导航属性吗?

没有。

我可以在一个上下文中连接多个数据库吗?

没有。

建议:

如果数据库可以相互通信(即在同一服务器上),则自从

CustomCode包含许多连接到Vendor和LogData的视图和存储过程

然后创建一个存储过程以执行所需的查询(可以连接来自不同数据库的表)。

从那里,您应该能够从Entity Framework中公开并执行该过程以执行所需的功能。

这样可以避免具有多个上下文并尝试将数据联接到内存中,如果数据集很大,则可能产生不利影响。

  • 唯一的问题是将 sp 加载到 DbQuery 而不是 DbSet 中意味着我无法将它们用作导航属性的权威实体。我可以使用更多的整体 sp,但是呃。EF 给予,也带走;) (4认同)