visual usando studio online net framework examples consulta conexion asp linq-to-sql

linq to sql - usando - ¿Cuál es el Linq a SQL equivalente a TOP o LIMIT/OFFSET?



linq to sql vs entity framework (13)

@Janei: mi primer comentario aquí es sobre tu muestra;)

Creo que si te gusta esto, quieres tomar 4 y luego aplicar el orden en estos 4.

var dados = from d in dc.tbl_News.Take(4) orderby d.idNews descending select new { d.idNews, d.titleNews, d.textNews, d.dateNews, d.imgNewsThumb };

Diferente a clasificar todo tbl_News por idNews descendente y luego tomar 4

var dados = (from d in dc.tbl_News orderby d.idNews descending select new { d.idNews, d.titleNews, d.textNews, d.dateNews, d.imgNewsThumb }).Take(4);

no ? los resultados pueden ser diferentes

Cómo hago esto

Select top 10 Foo from MyTable

en Linq a SQL?


De esta manera funcionó para mí:

var noticias = from n in db.Noticias.Take(6) where n.Atv == 1 orderby n.DatHorLan descending select n;


El OP también mencionó el desplazamiento, así que por ej. si desea obtener los artículos del 30 al 60, haría:

var foo = (From t In MyTable Select t.Foo).Skip(30).Take(30);

Use el método "Omitir" para el desplazamiento.
Use el método "Tomar" para el límite.



Esto funciona bien en C #

var q = from m in MyTable.Take(10) select m.Foo


Me gusta esto

var dados = from d in dc.tbl_News.Take(4) orderby d.idNews descending select new { d.idNews, d.titleNews, d.textNews, d.dateNews, d.imgNewsThumb };


Si la toma ocurre en el cliente o en la base de datos depende de dónde aplique el operador de toma. Si lo aplica antes de enumerar la consulta (es decir, antes de usarla en un foreach o convertirla en una colección), la toma dará como resultado que el operador SQL "n superior" se envíe a la consulta. Puede ver esto si ejecuta el generador de perfiles SQL. Si aplica la toma después de enumerar la consulta, ocurrirá en el cliente, ya que LINQ tendrá que recuperar los datos de la base de datos para que pueda enumerarla a través de ella.


Tomar datos de DataBase sin ordenar es lo mismo que tomar al azar


Tuve que usar el método Take (n), luego transformar a la lista, Funcionó como un encanto:

var listTest = (from x in table1 join y in table2 on x.field1 equals y.field1 orderby x.id descending select new tempList() { field1 = y.field1, active = x.active }).Take(10).ToList();


Use 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 la source y cede los elementos hasta que los elementos de count hayan sido cedidos o la source no contenga más elementos. Si el count excede la cantidad de elementos en la source , se devuelven todos los elementos de la source .


Use el método Take(int n) :

var q = query.Take(10);


Utilizarías el método Take (N).


Array oList = ((from m in dc.Reviews join n in dc.Users on m.authorID equals n.userID orderby m.createdDate descending where m.foodID == _id select new { authorID = m.authorID, createdDate = m.createdDate, review = m.review1, author = n.username, profileImgUrl = n.profileImgUrl }).Take(2)).ToArray();