2016-08-25 8 views
1

이것은 쉽지는 않지만 열심히로드하는 프로세스를 사용할 때마다 을 .Include() 뒤에 사용해야하는 이유는 무엇입니까?왜 .ToList 뒤에 사용합니까? Eager Loading에 포함하십시오.

열심히 로딩하면 관련 엔터티를 쿼리 목적으로 주 엔터티와 함께로드 할 수 있지만 왜 .ToList()을 사용해야하는지 알고 있습니다.

메모리 용도일까요? example를 들어

:

using (var context = new BloggingContext()) 
{ 
    // Load all blogs and related posts 
    var blogs1 = context.Blogs 
         .Include(b => b.Posts) 
         .ToList(); // why is this needed? 
} 

어떤 설명/도움말

이 크게 감사합니다.

+0

http://stackoverflow.com/questions/30624700/which-linq-statements-force-entity-framework-to-return-from-the-db – BenG

+1

또한 해당 링크를 확인하는 것이 좋습니다. https://msdn.microsoft.com/en-us/library/bb738633(v=vs.110).aspx 지연된/즉시 쿼리 실행을 설명합니다. –

+0

누가 Include를 사용할 때 ToList를 사용해야한다고 말했습니까? 그것은 사실이 아닙니다. –

답변

4

ToList() 호출 중에 쿼리가 실제로 실행될 때입니다. 따라서 이전 Include은 데이터베이스를 치기 전에 투영을 설정합니다.

+0

좋아요, raderick이 댓글에 게시 한 링크와 함께 당신의 대답은 확실히 도움이되었습니다. 고맙습니다. –