title: Dapper query object with a child of IEnumerable
body: <p>I am trying query all countries and in each country object it would fill up the provinces.</p>
  
  <p>I have the following Classes</p>
  
  <pre><code>public class Country
  {
      public int Countryid { get; set; }
      public string CountryName { get; set; }
  
      public IEnumerable&lt;Province&gt; Provinces { get; set; }
  }
  
  public class Province
  {
      public int ProvinceId { get; set; }
      public string ProvinceName { get; set; }
  }
  
  public IEnumerable&lt;Country&gt; GetCountries()
  {
      var query = @"
            SELECT [Country].[CountryId], [Country].[Name] as CountryName, [Province].[ProvinceId], [Province].[Name] as ProvinceName
            FROM [Province]
              RIGHT OUTER JOIN [Country] ON [Province].[CountryId] = [Country].[CountryId]
            WHERE [Country].[CountryId] &gt; 0";
  
      return _connection.Query&lt;Country, Province, Country&gt;(query, (country, province) =&gt;
      {
          country.Provinces = country.Provinces.Concat(new List&lt;Province&gt; { province });
          return country;
      }, null);
  }
  </code></pre>
  
  <p>The error that I get is the following:</p>
  
  <blockquote>
    <p>System.ArgumentException: 'When using the multi-mapping APIs ensure you set the splitOn param if you have keys other than Id
    Parameter name: splitOn'</p>
  </blockquote>
  
  <p>I have been following this example:</p>
  
  <p><a href="https://gist.github.com/Lobstrosity/1133111" rel="nofollow noreferrer">https://gist.github.com/Lobstrosity/1133111</a></p>
  
  <p>From my perspective, I don't see what I did much different besides mine being an outer join which I think should not matter, the result format is about the same.</p>
  
  <p>Why do I need the split on and can this work without it?</p>