我在数据库中有大量数据。我想过滤结果并获得特定数量的产品
例如:PageSize=100。我想在每个页面上获得 100 个产品,并且产品的描述包含字符串“笔记本电脑”
Products = repository.Products
.OrderByDescending(p => p.Date)
.Where(x=>x.Description.Contains("%Laptop%")
.Skip((page - 1) * PageSize)
.Take(PageSize);
此查询超时,因为该查询在检索前 100 个产品之前过滤了一个大结果
但如果我写
Products = repository.Products
.Skip((page - 1) * PageSize)
.Take(PageSize)
.OrderByDescending(p => p.Date)
.Where(x=>x.Description.Contains("%Laptop%");
然后第 1 页没有 100 个产品,因为查询先重试 100 个产品,然后再过滤
我应该怎么做才能检索 100 个产品(包含字符串“Laptop”)并且不会出现超时错误?