title: Odata problem with applying filter on IQueryable
body: <p>We are trying to implement latest OData in our project. We are using EF Core, and what we are trying to do is, map the domain set to new IQueryable of Dto Models using custom expression function as mapper. After the apply of the OData filters, the query is broken and cannot be executerd.</p>
  
  <p>Assemblies affected</p>
  
  <pre><code>Microsoft.AspNetCore.OData v7.3.0
  
  Microsoft.EntityFrameworkCore v3.1.2
  
  .Net Core 3.1 WebApi Project
  </code></pre>
  
  <p>Reproduce steps
  IQueryable that is returned in the controller</p>
  
  <pre class="lang-cs prettyprint-override"><code>_dbContext.PurchaseTypes.Select(Mapper.ToDto())
  </code></pre>
  
  <p>Expression function used for mapping</p>
  
  <pre class="lang-cs prettyprint-override"><code>public static Expression&lt;Func&lt;PurchaseType, PurchaseTypeDto&gt;&gt; ToDto()
  {
      return domain =&gt; new PurchaseTypeDto
      {
          Id = domain.Id,
          Code = domain.Code
      };
  }
  </code></pre>
  
  <p>In the controller, we have service call (which returns IQueryable) and we are applying the ODataQueryOptions opts.</p>
  
  <pre class="lang-cs prettyprint-override"><code>[HttpGet]
  public async Task&lt;IActionResult&gt; Get(ODataQueryOptions&lt;PurchaseTypeDto&gt; opts)
  {
      var query = opts.ApplyTo(_purchaseTypeService.GetAll()) as Queryable&lt;PurchaseTypeDto&gt;;
  
      var result = await query.ToListAsync();
  
      return Ok(result);
  }
  </code></pre>
  
  <p>Expected result
  When the url is accessed <a href="https://localhost:44361/odata/PurchaseType?%24filter=Id%20eq%202" rel="nofollow noreferrer">https://localhost:44361/odata/PurchaseType?%24filter=Id%20eq%202</a>,
  execute the query and result is returned</p>
  
  <p>Actual result
  The created query could not be executed</p>
  
  <pre><code>InvalidOperationException: The LINQ expression
  'DbSet
  .Where(p =&gt; new PurchaseTypeDto(
  p.Id,
  p.Code
  ).Id == __TypedProperty_0)' 
  could not be translated.
  </code></pre>