Ниже мой ответ основан на предположении, что вы хотите получать данные порциями, а не собирать всю коллекцию за один раз, чтобы ваше приложение работало быстрее.
«Я не хочу брать всю коллекцию, я хочу принимать только участие
об этом. "
Вы должны играть с обоими методами Пропустить и Взять.
Например, вы можете принять статический размер страницы, например 20 в вашем случае.
И затем при запросе результатов вам нужно указать индекс страницы, по которой вы хотите получить данные. Чтобы узнать, сколько страниц соответствует вашему запросу, вы можете сначала посчитать количество записей и сохранить их где-нибудь на стороне клиента / в памяти / кэше.
return _context.Products.Where(m => m.Name.Contains(part)).Count(); // to get the total number of records e.g. 74
Затем, чтобы получить порцию данных, вы указываете размер страницы и индекс страницы.
_context.Products.Where(m => m.Name.Contains(part)).Skip(PAGE_INDEX*PAGE_SIZE).Take(PAGE_SIZE);
PAGE_INDEX и PAGE_SIZE являются входными параметрами для вашей функции.