title: EF Core 3.1.x : The LINQ expression could not be translated. Either rewrite the query in a form that can be translated
body: <p>EF Core 3.1.x:</p>
  
  <p>I would not like to load all products in memory, which below queries do!
  Guess what happen if i do have millions of products in table?</p>
  
  <pre><code>var products = context.Products.ToList();
  products = products.Where(p =&gt; p.Name.Contains("xxx")).ToList();
  </code></pre>
  
  <p>And below query throws
  The LINQ expression 'DbSet-Product-
  .Where(b => b.Name.Contains(
  value: "xxx",
  comparisonType: InvariantCultureIgnoreCase))' 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().</p>
  
  <pre><code>var products = context.Products.Where(p =&gt; p.Name.Contains("xxx", StringComparison.InvariantCultureIgnoreCase)).ToList();
  </code></pre>
  
  <p>Related Issue on github: <a href="https://github.com/dotnet/efcore/issues/19087" rel="noreferrer">#19087</a></p>
  
  <p>Can anyone help me out. how to filter data with server side evaluation with ef core 3.1.x?</p>