title: Does a foreach of an IQueryable-as-IEnumerable allow previously iterated objects to be GC'ed / reclaimed?
body: <p>Given, for example:</p>
  
  <pre><code>IEnumerable&lt;LargeObject&gt; Read(int x) {
      // Implicit IQueryable&lt;LargeObject&gt; -&gt; IEnumerable&lt;LargeObject&gt;
      return ef6Context.LargeObjects.Where(o =&gt; o.ObjectType == x);
  }
  
  var largeObjects = Read(21281); // Returns "many" objects
  
  // Only use/iteration of IEnumerable result
  foreach (var o in largeObject) {
     // When processing the second item (and so on),
     // can the first (previous) "o" object be GC'ed?
     Process(o);
  }
  </code></pre>
  
  <p>Are the 'large objects' that have processed on <em>previous loops</em> eligible for garbage reclamation?</p>
  
  <p>Answer should cover any internal EF caching, as appropriate.</p>