title: EF Core 3.0 and OrderBy after Automapper ProjectTo issue
body: <p>I'm seeing an error using Automappers ProjectTo on EF Core 3, when trying to order on a column inside a class property.</p>
  
  <pre><code>public class CustomerDto
  {
      public string Name { get; set; }
      public SettingsDto Settings { get; set; }
  }
  
  public class SettingsDto
  {
      public int VoucherStartNum { get; set; }
  }
  
  var mapperCfg = new MapperConfiguration(cfg =&gt;
  {
      cfg.CreateMap&lt;Customer, CustomerDto&gt;();
      cfg.CreateMap&lt;CustomerSettings, SettingsDto&gt;();
  });
  
  // This is working.
  var workingSelect = _db.Customer
      .Select(x =&gt; new CustomerDto
      {
          Name = x.Name, 
          Settings = new SettingsDto
          {
              VoucherStartNum = x.Settings.VoucherStartNum
          }
      })
      .OrderBy(x =&gt; x.Settings.VoucherStartNum)
      .ToList();
  
  // This generates an error.
  var errorProjection = _db.Customer
      .ProjectTo&lt;CustomerDto&gt;(mapperCfg)
      .OrderBy(x =&gt; x.Settings.VoucherStartNum)
      .ToList();
  </code></pre>
  
  <p><code>errorProjection</code> throw the error:</p>
  
  <pre><code>System.InvalidOperationException: The LINQ expression 'OrderBy&lt;Customer, int&gt;(
      source: DbSet&lt;Customer&gt;, 
      keySelector: (c) =&gt; Property&lt;Nullable&lt;int&gt;&gt;(Property&lt;CustomerSettings&gt;(c, "Settings"), "CustomerId") == null ? null : new SettingsDto{ VoucherStartNum = Property&lt;CustomerSettings&gt;(c, "Settings").VoucherStartNum }
      .VoucherStartNum)' 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>This is the expression generated for <code>errorProjection</code></p>
  
  <pre><code>EntityQueryable&lt;Customer&gt;.Select(
      dtoCustomer =&gt; new PaymentsController.CustomerDto
      {
          Name = dtoCustomer.Name,
          Settings = (dtoCustomer.Settings == null)
              ? null
              : new PaymentsController.SettingsDto
              {
                  VoucherStartNum = dtoCustomer.Settings.VoucherStartNum
              }
      }).OrderBy(x =&gt; x.Settings.VoucherStartNum)
  </code></pre>
  
  <p>I'm guessing that this is due to the null check included by AutoMappers ProjectTo function. How can I fix this?</p>