EF Core 3.1.x:
我不想将所有产品加载到内存中,以下查询可以做到! 猜猜如果我桌上有数百万种产品会发生什么?
var products = context.Products.ToList();
products = products.Where(p => p.Name.Contains("xxx")).ToList();
以下查询引发 LINQ表达式'DbSet-Product- .Where(b => b.Name.Contains( 值:“ xxx”, comparisonType:InvariantCultureIgnoreCase))'无法翻译。可以以可翻译的形式重写查询,也可以通过插入对AsEnumerable(),AsAsyncEnumerable(),ToList()或ToListAsync()的调用来显式切换到客户端评估。
var products = context.Products.Where(p => p.Name.Contains("xxx", StringComparison.InvariantCultureIgnoreCase)).ToList();
有关github的相关问题:#19087
谁能帮助我。如何使用ef core 3.1.x通过服务器端评估过滤数据?
答案 0 :(得分:1)
EF Core会转换“包含”以进行服务器端评估,但不会接受接受StringComparison.InvariantCultureIgnoreCase(或任何其他StringComparison)的重载。