C# Linq to实体中的函数求值超时错误
我使用的是framework3.5。我有一组Linq语法,如下所示C# Linq to实体中的函数求值超时错误,c#,linq-to-entities,C#,Linq To Entities,我使用的是framework3.5。我有一组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
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)
});
它总是给我函数计算超时错误。但奇怪的是,我检查本机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]
有人知道吗?非常感谢您的帮助。首先尝试将所有数据选择到TmpClause中,然后在另一个变量中对TmpClause数据执行group子句。虽然这并不理想,但它可能会帮助您找出问题的原因。谢谢Jethro,我尝试了您的方法,但它在组linq查询中仍然给了我相同的错误。最后,我尝试先选择将所有数据转换为可枚举,然后根据可枚举变量对数据库进行分组。这很有效。仍然不确定问题出在哪里。无论如何,谢谢你的主意。