2010-05-20 10 views
18

Estoy utilizando Linq para entidades y me gustaría saber si puedo obtener un número limitado de registros cuando realizo la consulta. Solo necesito los N registros superiores ya que la consulta hace el orden por y otras cláusulas. ¿Es esto posible o tendré que obtener el N superior usando el ciclo foreach?Obtiene los N registros superiores utilizando LINQ para Entidades

+0

http: // stackoverflow. com/questions/2874599/get-top-n-records-using-linq-to-entities –

Respuesta

28

Puede llamar al método .Take para obtener un par de resultados. Puede leer más al respecto here.

Debe comprender que la consulta no se ejecutará a menos que alguien ejecute el GetEnumerator().

28

Hay varias formas

1)

var data = (from p in db.people 
      orderby p.IdentityKey descending 
      select p).Take(100); 

2)

var query = db.Models.Take(100); 

3) o se puede omitir ciertos resultados

var data = (from p in people 
      select p).Skip(100); 
+0

¿Qué pasa si IdentityKey es Guid? ¿Alguna solución? –

+0

Entonces o no ordena en absoluto u ordena en algún otro valor de columna –

Cuestiones relacionadas