You are on page 1of 25

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 añade la capacidad de realizar
consultas nativamente a través de los
lenguajes .NET usando una sintaxis similar a
la de SQL.

Es un modelo de programación que simplifica


y unifica la implementación de acceso a
cualquier tipo de dato. LINQ no impone a usar
una arquitectura especifica mas bien facilita la
implementación 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 Jerárquico
Modelo Grafico
C# 3.0 Visual Basic 12 Others

.NET Language Integrated Query

LINQ to LINQ to LINQ to LINQ to LINQ to


Objects DataSets SQL Entities XML

<book>
<title/>

<author/>
<year/>
<price/>
</book>

Objects Relational XML


• 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 código
existente para el uso de datasets.

Aquellos que no quieran quedarse


rezagados, no necesitaran reescribir todo
su código 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 características de la
misma debemos hacer referencia al
ensamble System.Data.Linq.dll y en código
al namespace System.Data.linq
LINQ para SQL es una implementación
de O/RM(object relational mapping,
mapeador de objetos relacionales) que
viene con la nueva versión 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/añadir/borrar
datos de ellas.

Visual Studio 2013 incluye un diseñador 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 física insertando un
mapeo lógico 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 código al
namespace System.xml.linq
Consultas Integradas
Son una característica integrada del lenguaje
principal del desarrollador (C#,VB).

Permiten que las expresiones de consulta se


beneficien de los metadatos ricos, verificación
de sintaxis en tiempo de compilación, tipado
estatico y ayuda IntelliSense

Definen un conjunto de operadores de consulta


estándar de propósito 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 2013 viene con un diseñador
de LINQ para SQL que nos aporta una
forma fácil de modelar y visualizar una base
de datos como un modelo de objeto de
LINQ para SQL.

Usando ese diseñador LINQ para SQL


podemos crear fácilmente una
representación de la base de datos
Esta clase es a través de la cual
realizaremos las consultas a las entidades
de nuestra base de datos. Esta clase tendrá
propiedades que representarán a cada tabla
que hemos modelado, así como métodos
para cada procedimiento almacenado que
añadamos
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 página .aspx de la
siguiente forma:
Luego, podemos enlazar los resultados de
la consulta LINQ to SQL que escribimos
antes:
Esto generará una página como la siguiente:

You might also like