Scio Talks - Jugando con LinQ

8
Jugando con LinQ Un vistazo al uso de consultas, operadores y delegados para facilitar el uso de colecciones de datos.

description

Juan Miguel Alcalá nos comparte en su charla los fundamentos de LinQ, algo de su antecedentes y ejemplos de sus manejo.

Transcript of Scio Talks - Jugando con LinQ

Page 1: Scio Talks - Jugando con LinQ

Jugando con LinQUn vistazo al uso de consultas, operadores y delegados para facilitar el

uso de colecciones de datos.

Page 2: Scio Talks - Jugando con LinQ

¿Qué es LinQ?

LinQ => Language Integrated Query

Es un componente que forma parte del framework .Net

Fue presentado como una de las principales características de la versión 3.5

de .Net

Fue creado como parte del proyecto de investigación Cω (C Omega) por parte

del equipo de WebData de Sql Server y el equipo de Microsoft Research

LinQ Query Sintax es muy similar a las consultas Sql.

Page 3: Scio Talks - Jugando con LinQ

¿Por qué usar LinQ?

Las consultas LinQ son fáciles de entender y cambian poco entre diferentes

lenguajes.

Los tipos de datos, objetos y nombres de variables son validados en tiempo de

compilación

Hay una gran cantidad de operadores que pueden utilizarse para crear

consultas

Posee una arquitectura abierta y extensible

Funciona sobre varios orígenes de datos

Page 4: Scio Talks - Jugando con LinQ
Page 5: Scio Talks - Jugando con LinQ

¿Qué es una función Lambda?

Es una función anónima que puede contener expresiones e instrucciones.

No necesitan un identificador dado que se declaran “in situ”, justo cuando

van a utilizarse; convirtiendo al destinatario de esta función a actuar como

delegado o puntero hacia la misma.

Page 6: Scio Talks - Jugando con LinQ

Funciones lambda

Page 7: Scio Talks - Jugando con LinQ

Sintaxis

Page 8: Scio Talks - Jugando con LinQ

Query Operator

LinQ nos brinda la capacidad de crear nuevos operadores cuando los que

tenemos a nuestra disposición no satisfacen nuestras necesidades.

Pueden ser:

Single Element: devuelven solo un element de la secuencia (First, Last, etc)

Sequence: devuelven una secuencia de elementos (where)

Aggregate: devuelven el resultado de una operación (Count, Min, etc)

Grouping: devuelven grupos de elements (GroupBy, GroupJoin)