Las consultas se suelen expresar en un lenguaje de consulta especializada, como SQL para bases de datos relacionales y XQuery para XML. Por lo que, los desarrolladores han tenido que aprender un nuevo lenguaje de consulta para cada tipo de datos de formato de la fuente o los datos que se consulta.
Language-Integrated Query (LINQ) ofrece un simple, modelo coherente para trabajar con datos a través de varios tipos de fuentes de datos y formatos. En una consulta LINQ, siempre se trabaja con objetos de programación.
Sintaxis de Consultas
La sintaxis permite de linq permite a los desarrolladores escribir consultas en un lenguaje de alto nivel que tiene el formato similar a Transact-SQL. Mediante el uso de la sintaxis de las expresiones de consulta, se puede realizar el filtros, ordenar y agrupar las operaciones en las fuentes de datos con código mínimo.Ejemplos a desarrollar:
- Consulta sencilla ( from , select)
- Filtros ( where )
- Ordenando ( Order by)
- Particionando (Skip , Take, top n)
- Operadores (Count , sum , average )
Northwind db = new Northwind()
Consulta Sencilla
El metodo from nos indica de que tabla obtendremos la información y select nos indica que campos de esa tabla.var query = from p in db.Products
select p;
Obteniendo un solo campo
IQueryable<string> productNames =
from p in db.Products
select p.Name;
Obteniendo algunos campos
var query =
from p in db.Products
select new
{
Id = p.ProductID,
Nombre = p.Name
};
Filtros ( where )
La cláusula where filtra la información.var query =
from product in db.Products
where product.categoryid == id
select new
{
Nombre = p.Name,
precio = p.unitprice,
codigo = p.productid
};
Ordenando (orderby y orderbyDescending)
La cláusula orderby y OrderbyDescending nos proporcionan la capacidad de ordernar el conjunto de resultados.var query = from p in db.Products
orderby p.unitprice
select p;
var query = from p in db.Products
orderby p.unitprice descending
select p;
var query = from p in db.Products
orderby p.unitprice, p.name descending
select p;
Particionando (Skip, Take)
La clausula Skip muestra todos los datos, excepto los 2 primero.
La clausula Take muestra solo los primero 2 registros.
Skip
var query =
(from p in db.Products
select new
{
Id = p.ProductID,
Nombre = p.Name
}).Skip(2);
Take
var query = (from p in db.Products
select new
{
Id = p.ProductID,
Nombre = p.Name
}).Take(2);
No hay comentarios.:
Publicar un comentario
Gracias por sus comentarios.
Carlos Juan