title: How to lazily query a collection navigation property
body: <p>When I have to following POCO</p>
  
  <pre><code>class Poco {
    public int Id {get; set;}
    public virtual ICollection&lt;Child&gt; Children {get; set;}
  }
  </code></pre>
  
  <p>and child</p>
  
  <pre><code>class Child {
    public int MyProperty {get; set;}
  }
  </code></pre>
  
  <p>and I want to get some children if they satisfy some predicate, for example</p>
  
  <pre><code>Poco mypoco = getMyPoco();
  IEnumerable&lt;Child&gt; someChildren = mypoco.Children
                                    .Where( child =&gt; child.MyProperty &gt; 30);
  </code></pre>
  
  <p>I'm noticing that this fetches all children from the database first, and then filters on the returned list. How can I ensure that the condition is run on the database rather than in my application?</p>