title: Dynamically querying 2 entity types and mapping results back into specific entity set
body: <p>We have tables in our database which are normalized in the sense that the one should inherit fields from the other.</p>
  
  <p>So, for example:</p>
  
  <pre><code>'Vehicle' fields:
   - SpecificType
   - SerialNumber
  
  'Car' fields:
   - FuelType
  
  'Boat' fields:
   - HullSize
  </code></pre>
  
  <p>If the user searched on SerialNumber and FuelType, I know I need to return a Car, but I don't want to execute the search in two steps:</p>
  
  <pre><code> 1. List&lt;Vehicles&gt; SearchVehicles( serialNumber )
   2. List&lt;Cars&gt; SearchCars(List&lt;Vehicles&gt;, FuelType) // From the list of Vehicles, query all Cars with specified FuelType
  </code></pre>
  
  <p>Is there a way to write a generic method using Linq that could give me the desired result?</p>
  
  <p>I looked at the Dapper framework as a means of dynamically building criteria, but I'm not sure if there's a better way (practice), and I'd like to see what other options there are.</p>