 <p>This is probably the wisest way to do what you're asking:</p> <pre><code>var query = from product in products select new { product, finishedCategories = product.categories.Where(c =&gt; c.is_finished) }; </code></pre> <p>This creates an anonymous type that has the data you're looking for. Note that if you access <code>.product.categories</code> you'll still get all of that product's categories (lazily-loaded). But if you use <code>.finishedCategories</code> you'll just get the categories that were finished.</p>