LINQ: Qué Es Y cómo Usarlo
Enviado por Chequelo • 16 de Septiembre de 2012 • 17.351 Palabras (70 Páginas) • 666 Visitas
LINQ. que es y como usuarlo.
Gracias a la traducción de VIO podemos disfrutar de las bondades que LINQ que viene incluido en el Nuevo Visual Studio puede brindarle al desarrollador…
Hay que recordar que según Wikipedia Language Integrated Query (LINQ) es un proyecto de Microsoft que agrega consultas nativas semejantes a las de SQL a los lenguajes del .NET Framework, inicialmente a los lenguajes Visual Basic .NET y C#. Muchos conceptos que LINQ ha introducido fueron originalmente probados en Cω, un proyecto de investigación de Microsoft.
LINQ define operadores de consulta estándar que permiten a lenguajes habilitados con LINQ filtrar, enumerar y crear proyecciones de varios tipos de colecciones usando la misma sintaxis. Tales colecciones pueden incluir arreglos, clases enumerables, XML, conjuntos de datos desde bases de datos relacionales y orígenes de datos de terceros. El proyecto LINQ usa características de la versión 2.0 del .NET Framework, nuevos ensamblados relacionados con LINQ, y extensiones para los lenguajes C# y Visual Basic .NET. Microsoft ha distribuido una versión previa del LINQ, consistente de estas bibliotecas y compiladores para C# 3.0 y Visual Basic 9. Otros lenguajes, como F# y Nemerle, han anunciado brindar soporte preliminar.
Por lo tanto aquí les dejo las traducciones:
• Parte 1: Introducción a LINQ to SQL
• Parte 2: Definiendo el modelo de datos.
• Parte 3: Consultando la base de datos
• Parte 4: Actualizando la base de datos.
• Parte 5: Enlazar controles de interfaz de usuario con el ASP:LinqDatSource
• Parte 6: Obtener datos con procedimientos almacenados.
• Parte 7: Actualizando la base de datos con procedimientos almacenados.
• Parte 8: Ejecutar consultas SQL personalizadas.
• Parte 9: Uso de expresiones LINQ personalizadas con el control
Que disfruten esa serie de post traducido…
05.20.07
Usando LINQ to SQL (1ª Parte)
Publicado en LINQ, LINQ to SQL, Scott Guthrië a 7:18 pm por Vio
En los últimos meses he escrito una serie de post que cubrían algunas de las características que van a venir con Visual Studio y .NET Framework “Orcas”. Aquí tenéis los enlaces:
• Propiedades automáticas, inicializadores de objectos e inicializadores de colleciones.
• Métodos de extensión.
• Expresiones Lambda.
• Sintaxis de consultas.
• Tipos Anónimos
Las características anteriores hacen que la consulta de datos sea un concepto de primera clase. Conocemos a este modelo de programación como “LINQ” – que viene de .NET Language Integrated Query.
Los desarrolladores pueden usar LINQ con cualquier fuente de datos. Pueden expresar consultas eficientemente en los lenguajes de programación que elijan, opcionalmente transformar/incrustar los resultados de las consultas en el formato que quieran, y entonces manipular fácilmente los resultados. Los lenguajes habilitados para LINQ pueden aportar seguridad de tipos y chequeo en tiempo de compilación en las expresiones de consulta, y desarrollar herramientas que aporten intelisense, debugging, y un gran soporte para refactoring cuando escriban código de LINQ.
LINQ soporta un modelo de extensibilidad muy rico que facilita la creación de operadores eficientes para fuentes de datos. La versión “Orcas” del .NET Framework viene con librerías que habilitan LINQ sobre objetos, XML y bases de datos.
¿Qué es LINQ to SQL?
LINQ to SQL es una implementación de O/RM(object relational mapping, mapeador de objetos relacionales) que viene con la versión “Orcas” 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.
Modelando bases de datos con LINQ to SQL:
Visual Studio “Orcas” viene con un diseñador de LINQ to SQL que nos aporta una forma fácil de modelar y visualizar una base de datos como un modelo de objeto de LINQ to SQL. El próximo post cubrirá en más profundidad cómo usar este diseñador (podéis ver éste video que hice en Enero para verme construir un modelo LINQ to SQL).
Usando ese diseñador LINQ to SQL puedo crear fácilmente una representación de la base de datos “Northwind”:
El diseño de arriba define cuatro clases: Product, Category, Order y OrderDetail. Las propiedades de cada clase mapean las columnas de cada table en la base de datos. Cada instancia de esa clase representa una fila en las tablas.
Las flechas entre las cuatro clases de arriba representan las asociaciones/relaciones entre las diferentes entidades. Son típicamente modeladas como relaciones primary-key/foreign-key en la base de datos. La dirección de las flechas en el diseñador indican si la relación es uno-a-uno o uno-a-varios. Se añadirán propiedades fuertemente tipadas a las entidades basándose en esto. Por ejemplo, la clase Category de arriba tiene una relación de uno-a-varios con la clase Product. Esto implica que tendrá una propiedad “Categories” que es una colección de objetos Product con esa categoría. La clase Product entonces tiene una propiedad “Category” que apunta a una instancia de la clase Category representando la categoría a la que pertenece el producto.
El panel de la derecha del diseñador LINQ to SQL contiene una lista de procedimientos almacenados que interactúan con nuestro modelo de base de datos. En el ejemplo de arriba hemos añadido un SPROC (Procedimiento almacenado) “GetProductsByCategory”. Como entrada recibe un categoryID, y devuelve una secuencia de Product como resultado. Veremos cómo llamar a este procedimiento almacenado en un ejemplo.
Entendiendo la clase DataContext
Cuando pulsáis el botón “save” del diseñador de LINQ to SQL, Visual Studio generará clases .NET para representar las entidades y las relaciones de la base de datos que hemos modelado. Por cada archivo añadido a nuestra solución por el diseñador LINQ to SQL también se generará una clase DataContext. 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.
Por ejemplo, aquí tenéis la clase NorthwindDataContext:
Ejemplos de LINQ to SQL
Una vez que hemos modelado nuestra base de datos con el diseñador de LINQ to SQL, podemos escribir código fácilmente para trabajar con él. Aquí tenéis unos cuantos ejemplos que muestran tareas comunes con datos:
1) Consultando Products
...