2011-04-28 4 views
0

프레임 워크 3.5를 사용하고 있습니다. 나는 아래 그룹과 같은 Linq 구문을 가지고있다.Linq에서 엔티티의 함수 평가 시간 초과 오류가 발생했습니다.

var TmpClause = (from c in MES_WO_Tracking 
         join s in WorkOrders 
         on c.WoNo equals s.OrderNum 
         where s.Plant == "XX" && c.Shift != null 
         group new { 
          c.QtyComplete, 
          c.QtyScrap 
         } 
         by new 
         { 
          MRP = s.MRP_CTLR, 
          SeqNo = c.SeqNo, 
          TriggerSAP = c.TriggerSAP, 
          Shift = c.Shift 
         } into n 
         select new BkdKPIOutput 
         { 
          MRP = n.Key.MRP, 
          SeqNo = n.Key.SeqNo + n.Key.TriggerSAP, 
          Shift = n.Key.Shift, 
          OutputQty = n.Sum(c => c.QtyComplete.Value), 
          InputQty = n.Sum(c => c.QtyScrap.Value) + n.Sum(c => c.QtyComplete.Value) 
         }); 

항상 "Function evaluation timed out"오류가 발생한다. 하지만 이상한 것은 내가 네이티브 SQL을 확인, 그것은 단지 1 초를 보냅니다.

SELECT [t2].[MRP_CTLR] AS [MRP] , 
    [t2].[SeqNo] + [t2].[TriggerSAP] AS [SeqNo] , 
    [t2].[Shift] , 
    [t2].[value] AS [OutputQty] , 
    [t2].[value2] + [t2].[value3] AS [InputQty] FROM (SELECT SUM([t0].[QtyComplete]) AS [value] , 
       SUM([t0].[QtyScrap]) AS [value2] , 
       SUM([t0].[QtyComplete]) AS [value3] , 
       [t1].[MRP_CTLR] , 
       [t0].[SeqNo] , 
       [t0].[TriggerSAP] , 
       [t0].[Shift] 
     FROM  [MES_WO_Tracking] AS [t0] 
       INNER JOIN [WorkOrder] AS [t1] ON [t0].[WoNo] = [t1].[OrderNum] 
     WHERE  ([t1].[Plant] = 'XX') 
       AND ([t0].[Shift] IS NOT NULL) 
     GROUP BY [t1].[MRP_CTLR] , 
       [t0].[SeqNo] , 
       [t0].[TriggerSAP] , 
       [t0].[Shift] 
    ) AS [t2] 

누구에게 알리십니까? 도움을 주셔서 감사합니다.

답변

0

먼저 모든 데이터를 TmpClose로 선택한 다음 다른 변수에서 TmpClause 데이터의 group 절을 수행합니다. 이것이 이상적이지는 않지만 문제의 원인을 찾는 데 도움이 될 수 있습니다.

+0

감사합니다 Jethro, 나는 당신의 방법을 시도했다, 그것은 여전히 ​​나에게 그룹 linq 쿼리에 대한 동일한 오류를 주었다. 마침내 AsEnumerable()로 변환 된 모든 데이터를 먼저 선택한 다음 Enumerable 변수에 데이터베이스를 그룹화했습니다. 그거야. 아직도 문제가 어디 있는지 확실하지 않습니다. 어쨌든, 당신의 아이디어에 감사드립니다. –

+0

기꺼이 도와 드리겠습니다. – Jethro

관련 문제