title: Linq - where clause on child object
body: <p>Given the following classes:</p>
  
  <pre><code>public class Nation
  {
    public string Name { get; set; }
    public IEnumerable&lt;City&gt; Cities { get; private set; }
  }
  
  public class City
  {
    public string Name { get; set; }
  }
  </code></pre>
  
  <p>Assume <code>Nation</code> is the aggregate root and so I only have a <code>NationRepository</code> and not a <code>CityRepository</code> (thus <code>Nation</code> is the starting point for Linq queries). To clarify, my starting point would be an <code>IQueryable&lt;Nation&gt;</code> object.</p>
  
  <p>How would I write a query which returns a collection of <code>City</code> objects according to the following logic:</p>
  
  <p>Select all <code>City</code> instances whose <code>Name</code> begins with 'M' whose parent <code>Nation</code>'s name is 'UK'?</p>