Include()로로드했기 때문에 컨텍스트 (메모리)에 엔티티가 있습니다.엔티티에 LINQ가이 속도가 느립니까?
내가 약 25 개체 (TPH)가, 그리고 그들 각각에 대해 다음 쿼리를 실행 해요 :
actTph.TrainingProgramHistory_ConditionAndLoadParameter.Where(x => x.Level == 10).Select(x => x.ConditionAndLoadParameter).ToArray();
TrainingProgramHistory_ConditionAndLoadParameter, 그리고 TrainingProgramHistory_ConditionAndLoadParameter.ConditionAndLoadParameters 메모리에, 이러한 쿼리가 실행될 때 때문에, SQL 프로필은 아무 것도 기록하지 않습니다.
각 TPH에는 약 20 개의 TrainingProgramHistory_ConditionAndLoadParameter 관련 엔티티가 있습니다.
25 번 (내 25 개의 TPH 엔티티에서)이 쿼리를 실행하는 데 약 3 초가 걸립니다!
나는이에 리팩토링 경우
List<ConditionAndLoadParameter> measuredCalps = new List<ConditionAndLoadParameter>();
foreach (TrainingProgramHistory_ConditionAndLoadParameter tphCalp in actTph.TrainingProgramHistory_ConditionAndLoadParameter)
{
if (tphCalp.Level == 10)
{
measuredCalps.Add(tphCalp.ConditionAndLoadParameter);
}
}
는 그 다음은 100msec로 정도에서 실행됩니다.
Linq to Entities는 메모리 내 개체에 대해 어떻게 느린가요? 내가 도대체 뭘 잘못하고있는 겁니까?
-.. ' 첫 번째 경우에는 tph, 두 번째 경우에는 actTph가됩니다. –
그들은 동일합니다. 나는 원래 게시물을 편집했습니다. – Csabi