728x90
[IEnumerable]
Linq-to-Object가 작동하도록 하는 인터페이스이다. 원래 쿼리와 일치하는 모든 개체가 데이터베이스 메모리에 온로드된다. Linq 구절을 실행하게 되면 master 테이블을 통으로 조회한 후 서버단에서 처리를 한다.
[IQueryable]
Linq-to-Sql이 작동하도록 하는 인터페이스이다. Linq 구절이 있는 쿼리가 데이터베이스에서 실행이 되고 데이터 베이스 메모리에 필터링 값을 로드시켜준다.
- 둘의 차이점은 IQueryable<T>를 사용하면 많은 데이터를 로드할 필요 없이 원하는 필터링만 조회할 수 있다.
예로, 페이징 처리를 할 수 있다. Take 및 Skip을 이용해 요청한 행만 확보할 수 있다.
IEnumerable을 사용하면 모든 행이 메모리에 로드가 된다.
- 요약을 하자면,
IEnumerable은 메모리에 로드한 수 필터링을 하는 것이고,
IQueryable은 필터링을 거친 후 필요한 데이터만 가져온다.
[출처]
https://www.codeproject.com/Articles/766541/IEnumerable-vs-IQueryable
https://moonna.tistory.com/53
[참고하기]
https://stackoverflow.com/questions/1578778/using-iqueryable-with-linq/1578809#1578809
728x90
'C#' 카테고리의 다른 글
FirstOrDefault vs Where.FirstOrDefault (0) | 2023.01.12 |
---|---|
BigList 모델 구현 (0) | 2023.01.12 |
프로그램 실행 시 콘솔창 안 나오도록 하는 하기(백그라운드에서 프로그램 실행하기) (0) | 2023.01.06 |
form이 show인지 showdialog인지 체크하는 방법 (0) | 2023.01.03 |
TopLevel, TopMost 차이 (0) | 2023.01.02 |