내 저장소에서 ToList() 메서드를 사용하여 다른 List를 반환합니다.ToList() 메서드 호출시 데이터베이스 호출
문제는이 반환 된 결과 (즉, 유형 목록)에서 LINQ를 실행하면 데이터베이스 호출도 생성됩니다. 분명히이 두 번째 linq calll 순수한 LINQ Entity 및 데이터베이스를 호출해야합니다 지 않습니다. 내가하고있는 일을 아래에서 보라.
List<User> us = userRepository.GetMany(u => filterStatusIds.Contains(u.UserStatus.Id));
if (!string.IsNullOrEmpty(name))
us = (from u in us
where u.DisplayName.Contains(name)
select u).ToList(); // this ToList should not call database
추가 데이터베이스 호출을 중지 하시려면 도움이나 아이디어가 필요하십니까?
왜 데이터베이스 쿼리를 다시 실행한다고 생각하십니까? 또한 왜 데이터베이스 대신 응용 프로그램에서 필터를 실행합니까? –
@abatishchev :'ToList'에 대한 첫 번째 호출은 linq-to-objects로 전환 할 것이고 결과가 구체화되고 표현식 트리가 사라지기 때문에 되돌릴 방법이 없습니다. –
@Ladislav : 예, 맞습니다. 처음 의견을 읽지 않았습니다. – abatishchev