Está en la página 1de 11

Mecanismo uniforme y extensible para

consultar fuentes de datos de diferentes


tipos: las expresiones de consulta.
Sintaxis basada en nuevas palabras
reservadas contextuales.
Semntica enchufable: los lenguajes no
definen la semntica de las nuevas
palabras reservadas, sino nicamente un
conjunto de reglas para reescribir esas
expresiones como cascadas de llamadas a
mtodos.

var delMadrid =
from f in DatosFutbol.Futbolistas
where f.CodigoClub == RMA"
select new { f.Nombre, f.Edad };
var delMadrid =
DatosFutbol.Futbolistas
.Where(f => f.CodigoClub == RMA")
.Select(f => new { f.Nombre, f.Edad });
Fuentes de consultas
Los datos provienen de cierta fuente, que
implementa IEnumerable<T>.

Operadores de consulta estndar
No todos los operadores tienen un reflejo en la
sintaxis de los lenguajes.
El patrn LINQ.



Restriccin Where
Proyeccin Select, SelectMany
Ordenacin OrderBy, ThenBy
Agrupacin GroupBy
Encuentros Join, GroupJoin
Cuantificadores Any, All
Particin Take, Skip, TakeWhile, SkipWhile
Conjuntuales Distinct, Union, Intersect, Except
Un elemento First, Last, Single, ElementAt
Agregados Count, Sum, Min, Max, Average
Conversin ToArray, ToList, ToDictionary
Conversin de elementos OfType<T>, Cast<T>
Composicionales, jerrquicas
Anidamiento arbitrario.
Posibilidad de aplicar operadores adicionales.
Declarativas y no imperativas
Diga qu usted desea obtener, no cmo.
El cmo va por el proveedor.
Ejecucin diferida
Las consultas se ejecutan solo a medida que
sus resultados se solicitan.


Basados en IEnumerable<T> Basados en IQueryable<T>
Tecnologa Ensamblado Espacio de nombres
LINQ
to Objects
System.Core.dll System.Linq
LINQ
to XML
System.Xml.Linq.dll System.Xml.Linq
LINQ
to DataSet
System.Data.DataSetExtensions.dll System.Data
LINQ
to SQL
System.Data.Linq.dll System.Data.Linq
LINQ
to Entities
System.Data.Entity.dll
System.Data.Objects
y otros
Silverlight 2.0
.NET 3.5 CF
.NET 3.5
Objetos
<libro>
<titulo/>
<autor/>
<precio/>
</libro>
XML
Proveedores LINQ
C# 3.0 VB 9.0 Otros
BB.DD.
LINQ to
Objects
LINQ to
SQL
LINQ to
XML
LINQ to
Entities
LINQ to
DataSets
Basados en IEnumerable<T> Basados en IQueryable<T>
(el
suyo)
(el
suyo)
Basados en IEnumerable<T> Basados en IQueryable<T>
Basados en
IEnumerable<T>
Basados en
IQueryable<T>
Interfaz IEnumerable<T> IQueryable<T>
Ejecucin Local, en memoria Usualmente remota
Implementacin Iteradores
Anlisis de rboles de
expresiones
Proveedores
LINQ to Objects
LINQ to XML
LINQ to DataSet
LINQ to SQL
LINQ to Entities
Mis ejemplos
LINQ to Pipes
LoggingLINQ
LINQ to TFS
Habilite sus API existentes para LINQ
Especficamente para consultas en memoria.
Cree mtodos extensores que devuelvan un
objeto IEnumerable<T>.
Desarrolle su propio proveedor de consultas
Implemente IQueryable<T>.
Analice rboles de expresiones y traduzca
nodos a cdigo o a un lenguaje de consultas
diferente.

LINQ es un mecanismo uniforme y
extensible para consultar fuentes de datos
de diferentes tipos
LINQ cambiar la forma en que escribimos
cdigo.
Ms declarativo
Muchos menos bucles a la vista.
Cdigo ms fcil de leer y mantener.

También podría gustarte