Вы находитесь на странице: 1из 16

{ en profundidad }

Introduccin a LINQ Proveedores predeterminados Extendiendo LINQ a nuevos tipos de datos y libreras Recomendaciones de uso LINQ despus de .NET 3.5 Demos

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
Ordenacin Agrupacin Encuentros

Select, SelectMany
OrderBy, ThenBy GroupBy Join, GroupJoin

Cuantificadores
Particin Conjuntuales Un elemento Agregados Conversin Conversin de elementos

Any, All
Take, Skip, TakeWhile, SkipWhile Distinct, Union, Intersect, Except First, Last, Single, ElementAt Count, Sum, Min, Max, Average ToArray, ToList, ToDictionary 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.

Tecnologa
LINQ to Objects

Ensamblado
System.Core.dll

Espacio de nombres
System.Linq

LINQ System.Xml.Linq.dll System.Xml.Linq to Basados XML en IEnumerable<T> Basados en IQueryable<T>


LINQ to DataSet

System.Data.DataSetExtensions.dll
System.Data.Linq.dll System.Data.Entity.dll

System.Data
System.Data.Linq

LINQ to SQL LINQ to Entities

System.Data.Objects y otros

Silverlight 2.0
.NET 3.5

.NET 3.5 CF

C# 3.0

VB 9.0

Otros

Proveedores LINQ
Basados en IEnumerable<T> LINQ to Objects LINQ to XML
<libro> <titulo/> <autor/> <precio/> </libro>

Basados en IQueryable<T> LINQ to SQL LINQ to Entities (el suyo)

LINQ to (el DataSets suyo)

Objetos

XML

BB.DD.

Basados en IEnumerable<T> Interfaz Ejecucin IEnumerable<T> Local, en memoria

Basados en IQueryable<T> IQueryable<T> Usualmente remota

Basados en IEnumerable<T>
Implementacin Iteradores
LINQ to Objects LINQ to XML LINQ to DataSet

Basados en IQueryable<T>
Anlisis de rboles de expresiones

Proveedores

LINQ to SQL LINQ to Entities


LINQ to TFS

Mis ejemplos

LINQ to Pipes LoggingLINQ

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.

Analice cundo y cmo sus consultas se ejecutan


Momento de ejecucin. Ejecucin local vs. remota. Lugar/capa de ejecucin real.

Mantenga las consultas dentro de ensamblados


No pase expresiones de consulta entre capas.

Cuidado con los tipos annimos!


Planifique de antemano qu tipos son importantes. No abuse de las proyecciones.

Aprenda:
A escribir consultas con y sin la sintaxis. Las nuevas caractersticas de C# 3.0 Los detalles de la traduccin de la sintaxis en llamadas a operadores y cmo funcionan stos.

Parallel LINQ
Pasa partes de una consulta a diferentes ncleos/procesadores.

Proveedores de consultas de terceros:


LINQ to Amazon, LDAP, SharePoint, NHibernate, MySql, Flickr, y mucho ms.

LINQ 2.0

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.

Sistemas Externos

Capa de Datos

Lgica de Negocio

Modelo de Objetos (Datasets/Objetos) Entidades Relaciones

Presentacin
Modelo Conceptual (EDM) Entidades Relaciones

Вам также может понравиться