2016-08-25 5 views
1

これは簡単かもしれませんが、私は熱心に読み込むプロセスを使用するたびに.Include()の後に使用する必要があるのでしょうか?なぜ使用するか.ToList after。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がコメントに載せたリンクと共に、間違いなく助けになりました。ありがとうございました。 –

関連する問題