LINQ Take () devuelve los mismos resultados una y otra vez

Quiero revisar algunos registros pero laTake() extensión desdeLINQ No está devolviendo el resultado que esperaba.

public IQueryable<Person> GetPersonBetweenDates(DateTime start, DateTime end)
{
  return dbcontext.Persons.Where(x => x.RegisterDate >= start && x.RegisterDate <= end).Take(20);
}

Cuando vuelvo a ejecutar este método, obtengo el mismo resultado. Cómo exactamente haceTake() ¿trabajo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta