title: Join using multiple values in Linq Dynamic Core
body: <p>I am using Linq.Dynamic.Core to dynamically create queries for EF Core and I got stuck in the join operation with multiple primary keys. With single primary key tables everything works perfectly.</p>
  
  <p>As a first step, I created an example query in standard Linq:</p>
  
  <pre><code>        var resultLinq = ctx.Set&lt;Destination&gt;()
           .Join(ctx.Set&lt;DestinationCollectionInfo&gt;(), 
                  p =&gt; new  { A1 = p.Id, A2 = p.DestinationId }, 
                  j =&gt; new { A1 = j.Id, A2 = j.DestinationId }, 
                  (p, j) =&gt; new { Description = p.Description, Collection_Descr = j.Description })
           .ToList();
  </code></pre>
  
  <p>And then I translated it into Dynamic Linq Core as a model:</p>
  
  <pre><code>        var resultDynamicLinq = ctx.Set&lt;Destination&gt;()
             .Join(ctx.Set&lt;DestinationCollectionInfo&gt;(), 
             "new { it.Id AS A1, it.DestinationId AS A2 }", 
             "new { Id AS A1, DestinationId AS A2}",
             "new { outer.Description AS Description, inner.Description AS Collection_Descr}")
             .ToDynamicList();
  </code></pre>
  
  <p>Linq query works, instead Dynamic Linq query returns this exception:</p>
  
  <pre><code>       System.InvalidOperationException: The LINQ expression 'DbSet&lt;Destination&gt;
          .Join(
              outer: DbSet&lt;DestinationCollectionInfo&gt;, 
              inner: d =&gt; new &lt;&gt;f__AnonymousType2&lt;int, int&gt;{ 
                  A1 = d.Id, 
                  A2 = d.DestinationId 
              }
              , 
              outerKeySelector: d0 =&gt; new &lt;&gt;f__AnonymousType2&lt;int, int&gt;{ 
                  A1 = d0.Id, 
                  A2 = d0.DestinationId 
              }
              , 
              innerKeySelector: (d, d0) =&gt; new TransparentIdentifier&lt;Destination, DestinationCollectionInfo&gt;(
                  Outer = d, 
                  Inner = d0
              ))' could not be translated. Either rewrite the query in a form that can be translated, or switch to client evaluation explicitly by inserting a call to either AsEnumerable(), AsAsyncEnumerable(), ToList(), or ToListAsync(). See https://go.microsoft.com/fwlink/?linkid=2101038 for more information.
  </code></pre>
  
  <p>Am I doing something wrong or are there limitations in Dynamic Linq? Thank you!</p>