update tutorial net mvc framework first español con code asp c# asp.net-mvc-3 linq entity-framework

c# - tutorial - Limitar el número de resultados que se devuelven en una lista de Linq



update entity framework (3)

Use Take() , antes de convertir a una lista. De esta forma, EF puede optimizar la consulta que crea y solo devolver los datos que necesita.

Estoy usando Linq / EF4.1 para extraer algunos resultados de una base de datos y me gustaría limitar los resultados a los (X) resultados más recientes. Donde X es un número establecido por el usuario.

¿Hay alguna forma de hacer esto?

Actualmente los estoy devolviendo como una List si esto ayuda a limitar el conjunto de resultados. Si bien puedo limitar esto mediante un bucle hasta que toco X, supongo que no pasaré los datos adicionales.

Solo en caso de que sea relevante ... Proyecto C # MVC3 que se ejecuta desde una base de datos SQL Server.


Use la función Take

int numberOfrecords=10; // read from user listOfItems.OrderByDescending(x => x.CreatedDate).Take(numberOfrecords)

Suponiendo que listOfItems es una lista de objetos de su entidad y CreatedDate es un campo que tiene el valor de fecha de creación (utilizado aquí para hacer el pedido al descender para obtener artículos recientes).

La función Take () devuelve un número específico de elementos contiguos desde el inicio de una secuencia.

http://msdn.microsoft.com/en-us/library/bb503062.aspx


results = results.OrderByDescending(x=>x.Date).Take(10);

El OrderByDescending ordenará los elementos por su propiedad de fecha / hora (o la lógica w / e que desea usar para obtener el más reciente) y Take limitará a los primeros x elementos (el primero es el más reciente, gracias al orden).

Editar: para devolver algunas filas que no comienzan en la primera fila, use Skip() :

results = results.OrderByDescending(x=>x.Date).Skip(50).Take(10);