我有一个Linq,它需要花费2-3分钟才能获得8000个数据。 有没有人可以帮我改进我的Linq这个过程。
self.storyboard
答案 0 :(得分:0)
尝试类似的东西:
var listOP = (from f in db.T_COLLECT_OP_DTL
from ii in db.T_SETUP_UNIT
join g in db.T_COLLECT_OP_DTL_KIMPER on new { A = f.PTDHCARD_ID, B f.PRODUCTION_DATE, C = f.SHIFT } equals new { A = g.PTDHCARD_ID, B = g.PRODUCTION_DATE, C = g.SHIFT}
join h in db.M_PRODUCT_MODEL on g.MODEL equals h.MODEL_CODE
join i in db.M_EQUIPMENT on new {A = ii.EQUIPMENT_ID, B = h.PRODUCT_MODEL_ID} equals new {A = i.EQUIPMENT_ID, B = i.PRODUCT_MODEL_ID}
let kimperid = (from codk in g
select codk.KIMPER_ID).Max()
where f.PRODUCTION_DATE == prodDate
&& ( (f.SHIFT == shifts || f.SHIFT == shift) )
&& ii.PRODUCTION_DATE == fsu
&& ii.SHIFT == fsh
&& ii.CURRENT_DELAY != "Breakdown"
select new
{
f.OPERATOR_ID,
f.PRODUCTION_DATE,
f.SHIFT,
g.MODEL,
g.KIMPER_ID,
g.EXP_UNIT,
i.UNIT_NO
}).ToList();