Saltar al contenido

¿Cuál es el equivalente de Linq a SQL a TOP o LIMIT / OFFSET?

Solución:

Utilice el método Take:

var foo = (from t in MyTable
           select t.Foo).Take(10);

En VB, LINQ tiene una expresión de toma:

Dim foo = From t in MyTable _
          Take 10 _
          Select t.Foo

De la documentación:

Take<TSource> enumera source y rinde elementos hasta count elementos han sido cedidos o source no contiene más elementos. Si count excede el número de elementos en source, todos los elementos de source se devuelven.

En VB:

from m in MyTable
take 10
select m.Foo

Esto supone que MyTable implementa IQueryable. Puede que tenga que acceder a eso a través de un DataContext o algún otro proveedor.

También asume que Foo es una columna en MyTable que se asigna a un nombre de propiedad.

Consulte http://blogs.msdn.com/vbteam/archive/2008/01/08/converting-sql-to-linq-part-7-union-top-subqueries-bill-horst.aspx para obtener más detalles.

Utilizar el Take(int n) método:

var q = query.Take(10);
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *