2017-02-18 22 views
1

Я получаю эту ошибку при запросе LINQ, используя две таблицы из двух разных файлов edmx. Запрос выполняется, как, Просто я хочу имя отдела и обозначения, который соответствует с идентификатором, а пользователь, имеющим этот отдел и назначение в usermaster стола, а также Routemaster также Где как UID = Локальные переменный, имеющее значение сессииСложный запрос ссылки на запрос LINQ

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 содержит ссылки на запросы, связанные с различными контекстами.

Любые идеи для решения этой проблемы?

+1

Ошибка выхода для меня ясно: Вы не можете создавать запросы, как это с помощью двух контекстов , Либо получите данные отдельно, либо создайте соединение в памяти или создайте контекст, в котором живут все связанные модели. –

+0

Я использовал в другом запросе, когда я присоединяюсь к двум таблицам, я не получал и ошибки там, но, присоединившись к 4 таблицам, он показывает ошибку, не нашел ли ошибки в соединении таблиц? @PeterBons –

+0

Возможно, вы выполнили запросы сначала в другом сценарии. Можете ли вы опубликовать этот другой запрос? –

ответ

1

Я нашел ответ Позволяя

MultipleActiveResultSets=True 

В ConnectionString, я изменил мой запрос в ниже,

 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 
      }); 
     } 

 Смежные вопросы

  • Нет связанных вопросов^_^