Está en la página 1de 26

Comunidad .

NET Mrida
Aluxes.NET
LINQ
AGENDA
Que es LINQ?
Por qu LINQ?
El proyecto LINQ
Consultas Integradas en los lenguajes
Mejoras a los lenguajes C# y VB para soportar LINQ
Usando LINQ to SQL
Demo
Conclusiones
Que es LINQ ?
Es un componente del Microsoft.Net
Framework que aade la capacidad de realizar
consultas nativamente a travs de los
lenguajes .NET usando una sintaxis similar a
la de SQL.

Es un modelo de programacin que simplifica
y unifica la implementacin de acceso a
cualquier tipo de dato. LINQ no impone a usar
una arquitectura especifica mas bien facilita la
implementacin de varias arquitecturas
existentes para acceso a datos.
Porque LINQ?
Con frecuencia los programas deben acceder a diferentes
dominios de datos:
Un documento XML
Una base de datos
Una llave del registry
Cada dominio de datos tiene su propio modelo de acceso:
Bases de datos->SQL
XML->DOM,XQuery
Diferentes enfoques para representar datos:
Modelo Relacional
Modelo Jerrquico
Modelo Grafico
C# 3.0 Visual Basic 9.0 Others
.NET Language Integrated Query
LINQ to
Objects
LINQ to
DataSets
LINQ to
SQL
LINQ to
Entities
LINQ to
XML
Objects
<book>
<title/>

<author/>
<year/>
<price/>
</book>
XML Relational
Es el nombre que recibe la API para los
operadores de consulta estandard. Este
permite hacer consultas en arreglos y
colecciones de datos en memoria.

Los operadores estandard de consulta son
metodos estaticos de la clase estatica
System.Linq.Enumerable, la cual se utiliza
para crear consultas hacia objetos.

Este es el nombre que recibe la API para el
manejo de DataSets. Muchos
desarrolladores tienen mucho cdigo
existente para el uso de datasets.

Aquellos que no quieran quedarse
rezagados, no necesitaran reescribir todo
su cdigo para aprovechar las ventajas de
LINQ
Este es el nombre que recibe la API que
permite interactuar con Microsoft SQL
Server,esta interfaz fue conocida en
versiones anteriores como DLinq.

Para poder hacer uso de esta API y
aprovechar todas las caractersticas de la
misma debemos hacer referencia al
ensamble System.Data.Linq.dll y en cdigo
al namespace System.Data.linq
LINQ para SQL es una implementacin
de O/RM(object relational mapping,
mapeador de objetos relacionales) que
viene con la nueva versin del .NET
Framework y nos permite modelar bases de
datos relacionales con clases de .NET.
Podemos consultar bases de datos con
LINQ as como actualizar/aadir/borrar
datos de ellas.

Visual Studio 2008 incluye un diseador de
LINQ To SQL para modelado de BD.
LINQ para entidades es un API alternativa
utilizada para interactuar con bases de
datos.

Esta separa el modelo de la base de datos
de la base de datos fsica insertando un
mapeo lgico entre los dos.
Esta API se utiliza para trabajar con XML.
En versiones previas de LINQ fue conocida
como Xlinq.
Para poder aprovechar las ventajas de esta
API hay que hacer referencia al ensamble
System.Xml.Linq.dll y en cdigo al
namespace System.xml.linq
Consultas Integradas
Son una caracterstica integrada del lenguaje
principal del desarrollador (C#,VB).

Permiten que las expresiones de consulta se
beneficien de los metadatos ricos, verificacin
de sintaxis en tiempo de compilacin, tipado
estatico y ayuda IntelliSense

Definen un conjunto de operadores de consulta
estndar de propsito general que permiten a
los lenguajes filtrar, enumerar y crear
proyecciones de varios tipos de colecciones
usando la misma sintaxis.
Mejoras en C# y VB para soporte de LINQ
Ejemplo de Consulta
Visual Studio 2008 viene con un diseador
de LINQ para SQL que nos aporta una
forma fcil de modelar y visualizar una base
de datos como un modelo de objeto de
LINQ para SQL.

Usando ese diseador LINQ para SQL
podemos crear fcilmente una
representacin de la base de datos
Esta clase es a travs de la cual
realizaremos las consultas a las entidades
de nuestra base de datos. Esta clase tendr
propiedades que representarn a cada tabla
que hemos modelado, as como mtodos
para cada procedimiento almacenado que
aadamos
C#





VB

C#





VB

Los resultados de las consultas LINQ
implementan la interfaz IEnumerable - la
cual es una interfaz que los controles de
servidor de ASP.NET soportan para enlazar
datos. Lo que implica que podemos enlazar
los resultados de cualquier consulta LINQ,
LINQ to SQL, o LINQ to XML a cualquier
control ASP.NET.

Por ejemplo, podemos declarar un control
<asp:gridview> en una pgina .aspx de la
siguiente forma:

Luego, podemos enlazar los resultados de
la consulta LINQ to SQL que escribimos
antes:
Esto generar una pgina como la siguiente:

También podría gustarte