Language/C#

[c#] IEnumerable vs Queryable

힘히힘 2021. 8. 15. 12:40
반응형

IEnumerator : 열거자

클래스 내부의 컬렉션에 대해 반복할 수 있도록 도와줍니다.

 

IEnumerable는 집합 데이터를 처리하는 데 나온 개념으로 코드 중심 -> 데이터 중심으로 변화하면서 이를 처리하기 위해 개념이 도입되었다. 

 

모든 데이터를 데이터베이스에서 가져온 다음 클라이언트에서 스캔하여 "원하는 값"을 가져온다.

 

 

 

Queryable은 IEnumerable에서 더하여, 마치 SQL의 Query를 보는 것처럼 질의문으로 집합데이터를 처리하게 해준다.

IEumerable에서 상속되므로 IEumerable에서 할 수 있는 모든 것은 Queryable에서도 가능하다.

 

클라이언트는 요청을 보내고, "SQL"쿼리를 사용하여 데이터베이스에 적용, 데이터 베이스에서 필터 논리가 실행되고 필요한 데이터만 반환됨.

 

 

 

즉, 필터 논리가 실행되는 위치가 다르다

 

 

🔹 인메모리 데이터 수집만으로 작업하는 경우 " IEnumerable"가 좋은 선택이지만 데이터베이스와 연결된 데이터 수집을 쿼리하려는 경우 " IQueryable"가 네트워크 트래픽을 줄이고 SQL 언어의 힘을 사용하므로 더 나은 선택

 

 

 

 

 

 

 

 

출처 & 참고

 

https://epdev.tistory.com/38

 

https://www.youtube.com/watch?v=hDykzD-3z8k 

https://www.codeproject.com/Articles/766541/IEnumerable-vs-IQueryable-3

 

 

1 2 3 4 5