使用多个数据库的联接查询
本文关键字:查询 数据库 | 更新日期: 2023-09-27 17:55:26
在带有JOIN的MSSQL中,可以交叉来自不同数据库的表。例如:
select
PM_ID,
PR_Name,
OTD_Name
from SomeTable
inner join PRD_Det on PM_ID = PR_Id
inner join DataBase2.dbo.PRI_Desc on PM_Oper = O_Id
where PM_Id = @PM_Id
我正在尝试使用EntityFramework制作类似的东西:
Entities1 _Context1 = new Entities1 ();
Entities2 _Context2 = new Entities2 ();
var data = (from w in _Context1 .SomeTable
join s in _Context2.PRI_Desc on w.PRD_Det.Single().PM_Oper equals s.O_Id
where w.PRD_Det.Single().PM_Id == PM_ID
select new SomeDetails()
{
PM_ID = w.PRD_Det.Single().PM_Id,
PR_Name = w.PR_Name,
OTD_Name = s.OTD_Name
}).ToList();
我收到以下错误
指定的 LINQ 表达式包含对以下查询的引用: 与不同的上下文相关联
如何解决此问题?
这在
实体框架中不受支持(异常也表明了这一点)。您只能在同一上下文中的实体上使用Joins
。