평소에 작업을 복사 붙여넣기만 하다보니 그 구문을 왜쓰는지 모르고 그냥 작성하다보니
안좋은 습관만점점늘어가는거같아서
"왜? 이걸썻을까 무슨생각으로 썻을까" 라는 마인드를 가지고 이제는 그 코드에 개발자가 무슨생각으로 코딩을했을까
생각을 하고 나름대로 정리를 해보려고한다
IQueryable 과 IEnumerable 의 차이에 대해 알아보려고 한다
IEnumerable
LINQ-to-Object 이 작동하도록 하는 인터페이스이다. 원래 쿼리와 일치하는 모든개체가
데이터 베이스 메모리에 온로드된다
1 2 3 4 5 6 | //EF , dbset public IEnumerable<master> getListCode(string code) { return _dbset.Where(p => p.CODE = code); } | cs |
이구문을 실행하게 되면 master 테이블을 통으로 조회를 한후 서버단에서 처리를한다
ex) select * from master
그후 서버에서 where 필터링을 해준다
동작방식은 밑에그림 참조
IQueryable
LINQ-to-SQL 이 작동하도록 하는 인터페이스이다. WHERE 조건을 걸린 쿼리가 데이터베이스에서 실행이되고
데이터베이스메모리에 code 필터링 값을 로드시켜준다
1 2 3 4 5 6 | //EF , dbset public IQueryable<master> getListCode(string code) { return _dbset.Where(p => p.CODE = code); } | cs |
ex) select * from master where code = 2
간단히 요약을 하자면
IEnumerable 은 메모리에 로드한후 필터링을 하는것이도
IQueryable 은 필터링을 거친후 필요한 데이터만 가져온다
출처 : https://www.facebook.com/DotNetInterviewQuestions/videos/751393584901587
, https://www.codeproject.com/Articles/766541/IEnumerable-vs-IQueryable
'ASP.NET MVC' 카테고리의 다른 글
ASP.NET MVC :: JSON 데이터형식을 커스텀모델에 담기 (0) | 2018.08.04 |
---|
WRITTEN BY