首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复杂LINQ查询参考错误

复杂LINQ查询参考错误
EN

Stack Overflow用户
提问于 2017-02-18 14:07:25
回答 1查看 72关注 0票数 1

在使用来自两个不同edmx文件的两个表查询LINQ时,我得到了这个错误。查询的运行方式是,我只需要部门的名称和与拥有该部门的id和用户匹配的指定,以及在其usermaster表中的指定,以及Routemaster,其中as uid =本地变量具有会话值。

代码语言:javascript
复制
  var qryRoute = (from rm in db.RouteMasters
                        from um in db.UserMasters
                        from dm in db.DeptMasters
                        from desgm in db2.DESG_MASTER
                        where um.UserID == uid 
                        && rm.UnitID == um.UnitID 
                        && rm.ForDept == um.DeptID 
                        && rm.ReqDept == dm.DeptID 
                        && rm.ReqDesg == desgm.ID 
                        && rm.RouteType == "General" 
                        && rm.IsActive == 1
                        select new
                        {
                            rm.RouteID,
                            rm.UnitID,
                            rm.ForDept,
                            rm.RouteType,
                            rm.ReqDept,
                            rm.ReqDesg,
                            dm.Department,
                            desgm.DESG_ID,
                            rm.Seq,
                            rm.IsActive

                        });

        RouteMaster RM;
        foreach (var i in qryRoute)
        {
            RM = new RouteMaster();
            RM.RouteID = i.RouteID;
            RM.UnitID = i.UnitID;
            RM.ForDept = i.ForDept;
            RM.RouteType = i.RouteType;
            RM.ReqDept = i.ReqDept;
            RM.ReqDesg = i.ReqDesg;
            RM.ReqDeptName = i.Department;
            RM.ReqDesgName = i.DESG_ID;
            RM.Seq = i.Seq;
            RM.IsActive = i.IsActive;
            obj.RouteList.Add(RM);
        }

db和db2是两个不同edmx文件的实例。

显示错误:指定的LINQ表达式包含对与不同上下文关联的查询的引用。

有什么办法解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-20 06:53:43

我找到了答案

代码语言:javascript
复制
MultipleActiveResultSets=True

在连接字符串中,我将查询更改为

代码语言:javascript
复制
        var qryRoute = (from rm in db.RouteMasters
                        from um in db.UserMasters
                        where um.UserID == uid
                        && rm.UnitID == um.UnitID
                        && rm.ForDept == um.DeptID
                        && rm.RouteType == "General"
                        && rm.IsActive == 1
                        select new
                        {
                            rm.RouteID,
                            rm.UnitID,
                            rm.ForDept,
                            rm.RouteType,
                            rm.ReqDept,
                            rm.ReqDesg,
                            rm.Seq,
                            rm.IsActive
                        });
        obj.RouteList = new List<RouteMaster>();
        foreach (var i in qryRoute)
        {
            obj.RouteList.Add(new RouteMaster
           {
               RouteID = i.RouteID,
               UnitID = i.UnitID,
               ForDept = i.ForDept,
               RouteType = i.RouteType,
               ReqDept = i.ReqDept,
               ReqDesg = i.ReqDesg,
               ReqDeptName = db.DeptMasters.FirstOrDefault(x => x.DeptID == i.ReqDept).Department,
               ReqDesgName = db2.DESG_MASTER.FirstOrDefault(x => x.ID == i.ReqDesg).DESG_ID,
               Seq = i.Seq,
               IsActive = i.IsActive
           });
        }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42316164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档