Entity framework 合并数据库和内存中数据中的linq表达式

Entity framework 合并数据库和内存中数据中的linq表达式,entity-framework,linq,Entity Framework,Linq,我使用实体框架来查询数据,我需要将内存中已经存在的数据(包括新记录)和数据库中的数据合并 例如: var linqdb=来自context.Set()中的d 在context.Set()中加入i 论d.instit等于i.instit 选择新的{d.DEPTNAME,i.INSTNAME}; var linqm=来自context.Set().Local中的d 在context.Set().Local中连接i 论d.instit等于i.instit 选择新的{d.DEPTNAME,i.INSTN

我使用实体框架来查询数据,我需要将内存中已经存在的数据(包括新记录)和数据库中的数据合并

例如:

var linqdb=来自context.Set()中的d
在context.Set()中加入i
论d.instit等于i.instit
选择新的{d.DEPTNAME,i.INSTNAME};
var linqm=来自context.Set().Local中的d
在context.Set().Local中连接i
论d.instit等于i.instit
选择新的{d.DEPTNAME,i.INSTNAME};
var linqunion=linqm.Union(linqdb.AsEnumerable());
区别仅在于执行查询的来源: 第一个是数据库,第二个在内存中。 如何在不重写LINQ查询2次的情况下获得结果

问候
Luigi

封装在一个将两个源集合都视为IQueryable的方法中?我想有一种方法来翻译一个可以同时在两个源(db和local)上工作的基本LINQ表达式
var linqdb = from d in context.Set<DEPARTMENT>()
             join i in context.Set<INSTALLATION>() 
             on d.INSTID equals i.INSTID
             select new { d.DEPTNAME, i.INSTNAME };

var linqm = from d in context.Set<DEPARTMENT>().Local
            join i in context.Set<INSTALLATION>().Local 
            on d.INSTID equals i.INSTID
            select new { d.DEPTNAME, i.INSTNAME };

var linqunion = linqm.Union(linqdb.AsEnumerable());