LINQとSqlDataProviderがWHOLEテーブルを反復処理することに成功したのではないかと思います。
以下の例では、
fooアイテム全体が一度だけMEMORYにロードされ、CLRはメモリ内のfooアイテムを繰り返し処理しますか?
または、fooアイテムはSQL Serverからチャンクでロードされますか?
または、SQL SERVERからMEMORTに一度に1つのfooのみがロードされますか?
または ?
using (var context = new FooEntities())
{
var allItems = from foo in context.Foos
select foo;
// Are all foos LOADED into the MEMORY at once?
// Or they come from SQL SERVER in chunks?
foreach (f in foos)
Console.WriteLine(f.ID);
}