EntityFramework 버전 5를 사용하는 응용 프로그램의 네트워크에서 느린 성능을 조사하고 있습니다. 시도한 한 가지 옵션은 전체 개체 대신 Id 필드 만 검색하는 것이 었습니다. 그러나 Wireshark에서 조사한 결과, 모든 객체가 어쨌든 전송된다는 것을 알았습니다. 즉, 다음 두 코드 블록은 정확히 동일한 네트워크 활동을 발생시킵니다. 아무도 어떻게 첫 번째 쿼리에서 ID를 반환하는 db 발생할 수 있습니다 알아?EntityFramework는 하나의 열만 요청할 때 왜 전체 개체를 반환합니까?
List<long> test = dbContext.UserActivities
.Where(ua => ua.Activity.Id == activityId)
.Select(ua => ua.User)
.ToList()
.Select(u => u.Id)
.ToList();
List<long> test = dbContext.UserActivities
.Where(ua => ua.Activity.Id == activityId)
.Select(ua => ua.User)
.ToList();
'.ToList()는'객체를 구체화. 기본적으로 쿼리를 실행합니다. 이후의 모든 것은 LINQ to Objects입니다. – James