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]
누구에게 알리십니까? 도움을 주셔서 감사합니다.
감사합니다 Jethro, 나는 당신의 방법을 시도했다, 그것은 여전히 나에게 그룹 linq 쿼리에 대한 동일한 오류를 주었다. 마침내 AsEnumerable()로 변환 된 모든 데이터를 먼저 선택한 다음 Enumerable 변수에 데이터베이스를 그룹화했습니다. 그거야. 아직도 문제가 어디 있는지 확실하지 않습니다. 어쨌든, 당신의 아이디어에 감사드립니다. –
기꺼이 도와 드리겠습니다. – Jethro