EF Core 3.1.x:
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?
var products = context.Products.ToList();
products = products.Where(p => p.Name.Contains("xxx")).ToList();
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().
var products = context.Products.Where(p => p.Name.Contains("xxx", StringComparison.InvariantCultureIgnoreCase)).ToList();
Related Issue on github: #19087
Can anyone help me out. how to filter data with server side evaluation with ef core 3.1.x?
EF Core does translate Contains for server-side evaluation - but not the overload that accepts StringComparison.InvariantCultureIgnoreCase (or any other StringComparison).
Closed issue here
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With