title: Dapper Multi-Mapping
body: <p>Inside the Dapper documentation I can clearly see the multi-mapping for a semi-simple object or simple object.  For instance:</p>
  
  <pre><code>public class Post
  {
       public int Id { get; set; }
       public string Name { get; set; }
       public User Owner { get; set; }
  }
  
  public class User
  {
       public int Id { get; set; }
       public string Name { get; set; }
  }
  
  IDbConnection.QueryAsync&lt;Post, User, Post&gt;(query, (post, user) =&gt; { post.Owner = user; return post; }, new { Id = id }, null, true, "id", CommandType.Text);
  </code></pre>
  
  <p>The question, is how to have Dapper handle more complex objects that have more than one inner object.  For instance:</p>
  
  <pre><code>public class PlotStemDomain
  {
       public int Id { get; set; }
       ...
       public PlotDomain Plot { get; set; }
       public SpeciesDomain species { get; set; }
  }
  
  public class PlotDomain
  {
       public int Id { get; set; }
       ...
  }
  
  public class SpeciesDomain
  {
       public int Id { get; set; }
       ...
  }
  </code></pre>
  
  <p>When it appears to only handle a single <code>Func&lt;Post, User, Post&gt;</code>.</p>