JOIN查询多个数据库

时间:2014-03-31 06:46:51

标签: c# entity-framework

在带有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表达式包含对查询的引用   与不同的背景相关联

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

实体框架不支持(例外情况也表示)。您只能对同一上下文中的实体使用Joins