У меня есть большой объем данных в базе данных. Я хочу отфильтровать результат и получить определенный номер продуктаlinq limit и filter большой набор результатов
Например: 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 продуктов первой, а затем фильтрации
Что Shou ld Я делаю, чтобы получить 100 продуктов (содержат строку «Ноутбук») и не получить ошибку времени?
Вы уверены, что он будет тайм-аут? Ты это пробовал? –
Спасибо. Я пробовал это – kaboom