Este documento proporciona una introducción a LINQ to SQL, que permite modelar bases de datos relacionales con clases .NET. Explica cómo usar el diseñador de LINQ to SQL en Visual Studio para generar clases que representen las tablas de una base de datos. También describe cómo estas clases mapean las columnas a propiedades y cómo modelan las relaciones entre tablas. El objetivo final es permitir consultas, inserciones, actualizaciones y eliminaciones de datos de una forma sencilla y tipo segura.
Este documento describe cómo crear un modelo de datos en LINQ to SQL mediante el diseñador de LINQ to SQL en Visual Studio. Explica cómo mapear tablas y vistas de una base de datos a clases de entidad, definir relaciones entre clases, retrasar la carga de propiedades, y mapear procedimientos almacenados como métodos en la clase DataContext.
Este documento describe cómo actualizar, insertar y eliminar datos en una base de datos usando LINQ to SQL. Explica que cuando se llama a SubmitChanges() sobre un objeto DataContext, LINQ to SQL genera automáticamente las sentencias SQL necesarias para actualizar la base de datos con los cambios realizados a los objetos. También permite agregar validación personalizada a los objetos y propiedades del modelo de datos, así como implementar lógica de negocio en los métodos de inserción, actualización y eliminación.
Este documento describe el desarrollo de una aplicación web de ventas usando Java, Hibernate y Spring. Explica la creación de la base de datos, la estructura del proyecto en NetBeans y las entidades mapeadas a las tablas de la base de datos.
Este documento describe cómo actualizar una base de datos con LINQ to SQL usando procedimientos almacenados en lugar de SQL dinámico. Explica cómo mapear procedimientos almacenados existentes y nuevos para operaciones como inserción, actualización y borrado, y cómo esto permite encapsular la lógica comercial y de validación de forma independiente de la capa de acceso a datos. También cubre temas avanzados como el uso de parámetros de salida y la gestión de errores.
¿qué diferencias existen entre LINQ to SQL y Entity Framework?"
Aunque son casi lo mismo LINQ to SQL y EF han tenido vidas paralelas y, hoy en día, EF se ha impuesto de manera aplastante. La gran diferencia es que LINQ to SQL se creó con la finalidad de ser un RAD (Rapid Application Development) por lo que se dejaron alguna cosas en el tintero que
Este documento presenta un manual sobre programación aplicada I. Explica conceptos básicos de bases de datos y Visual Basic como espacios de nombres, conexiones, adaptadores y conjuntos de datos. Luego detalla dos prácticas para visualizar datos de estudiantes almacenados en una base de datos tanto en un formulario como en una página web.
Este documento describe cómo usar procedimientos almacenados (SPROCs) con LINQ to SQL para obtener datos de una base de datos. Explica cómo mapear SPROCs a métodos en la clase DataContext para poder llamarlos y devolver objetos del modelo de datos. También cubre cómo devolver múltiples tipos de datos de un SPROC y el soporte para funciones definidas por el usuario.
Este documento proporciona instrucciones paso a paso para crear una aplicación de tres capas en Visual Studio utilizando C# o VB.NET. La primera capa es la capa de datos, que contiene la lógica para conectarse a una base de datos y ejecutar consultas. La segunda capa es la capa de negocio, que contiene métodos que se comunican con la capa de datos. La tercera capa es la capa de presentación, que contiene la interfaz gráfica del usuario y se comunica con la capa de negocio.
Este documento describe cómo crear un modelo de datos en LINQ to SQL mediante el diseñador de LINQ to SQL en Visual Studio. Explica cómo mapear tablas y vistas de una base de datos a clases de entidad, definir relaciones entre clases, retrasar la carga de propiedades, y mapear procedimientos almacenados como métodos en la clase DataContext.
Este documento describe cómo actualizar, insertar y eliminar datos en una base de datos usando LINQ to SQL. Explica que cuando se llama a SubmitChanges() sobre un objeto DataContext, LINQ to SQL genera automáticamente las sentencias SQL necesarias para actualizar la base de datos con los cambios realizados a los objetos. También permite agregar validación personalizada a los objetos y propiedades del modelo de datos, así como implementar lógica de negocio en los métodos de inserción, actualización y eliminación.
Este documento describe el desarrollo de una aplicación web de ventas usando Java, Hibernate y Spring. Explica la creación de la base de datos, la estructura del proyecto en NetBeans y las entidades mapeadas a las tablas de la base de datos.
Este documento describe cómo actualizar una base de datos con LINQ to SQL usando procedimientos almacenados en lugar de SQL dinámico. Explica cómo mapear procedimientos almacenados existentes y nuevos para operaciones como inserción, actualización y borrado, y cómo esto permite encapsular la lógica comercial y de validación de forma independiente de la capa de acceso a datos. También cubre temas avanzados como el uso de parámetros de salida y la gestión de errores.
¿qué diferencias existen entre LINQ to SQL y Entity Framework?"
Aunque son casi lo mismo LINQ to SQL y EF han tenido vidas paralelas y, hoy en día, EF se ha impuesto de manera aplastante. La gran diferencia es que LINQ to SQL se creó con la finalidad de ser un RAD (Rapid Application Development) por lo que se dejaron alguna cosas en el tintero que
Este documento presenta un manual sobre programación aplicada I. Explica conceptos básicos de bases de datos y Visual Basic como espacios de nombres, conexiones, adaptadores y conjuntos de datos. Luego detalla dos prácticas para visualizar datos de estudiantes almacenados en una base de datos tanto en un formulario como en una página web.
Este documento describe cómo usar procedimientos almacenados (SPROCs) con LINQ to SQL para obtener datos de una base de datos. Explica cómo mapear SPROCs a métodos en la clase DataContext para poder llamarlos y devolver objetos del modelo de datos. También cubre cómo devolver múltiples tipos de datos de un SPROC y el soporte para funciones definidas por el usuario.
Este documento proporciona instrucciones paso a paso para crear una aplicación de tres capas en Visual Studio utilizando C# o VB.NET. La primera capa es la capa de datos, que contiene la lógica para conectarse a una base de datos y ejecutar consultas. La segunda capa es la capa de negocio, que contiene métodos que se comunican con la capa de datos. La tercera capa es la capa de presentación, que contiene la interfaz gráfica del usuario y se comunica con la capa de negocio.
Este documento presenta resúmenes de tres autores sobre libros o canciones que les han inspirado. El primer autor dedica su resumen a su esposa Lucía. El segundo autor cita una línea de la canción "Rosalinda's Eyes" de Billy Joel. El tercer autor cita una línea de la canción "Knights of Cydonia" de Muse.
El documento proporciona instrucciones para instalar e implementar iReport en NetBeans para crear reportes Jasper. Explica cómo descargar e instalar el plugin iReport, agregar librerías, crear un reporte de muestra vacío, y ejecutar el reporte para probar la configuración. También cubre la configuración de un datasource para Tomcat y cómo crear reportes usando el asistente, incluyendo la selección de una plantilla, agregar campos de base de datos y guardar el archivo JRXML resultante.
Este documento resume una serie de artículos sobre LINQ to SQL, un ORM que permite modelar bases de datos relacionales en clases de .NET. Explica cómo LINQ to SQL genera consultas SQL dinámicas pero también permite ejecutar consultas SQL personalizadas a través del método ExecuteQuery. Este método permite especificar el tipo de datos devuelto y participa en el seguimiento de cambios para actualizaciones. También cubre cómo usar consultas SQL personalizadas para inserciones, actualizaciones y eliminaciones.
1) El documento describe el proceso de despliegue de aplicaciones J2EE, incluyendo cuatro métodos diferentes (despliegue en caliente, perfiles de despliegue, Apache Ant, y control de despliegue basado en consola).
2) Explica cómo desplegar una aplicación Oracle ADF de tres capas en OC4J usando perfiles de despliegue desde Oracle JDeveloper, incluyendo pasos como generar descriptores de despliegue, crear perfiles para cada capa y uno global, y probar la aplicación desplegada.
3) Tamb
Este documento describe cómo crear y manejar una base de datos SQLite en Android. Explica cómo crear tablas, vistas, triggers y relaciones entre tablas mediante claves foráneas simuladas. También cubre cómo insertar, actualizar, eliminar y consultar datos, y el uso de cursores para recuperar y navegar los resultados de las consultas.
Este documento presenta la primera parte de un manual para crear una aplicación de gestión de negocios con VB.NET que permita leer, guardar, modificar y eliminar información de una base de datos. Explica cómo crear el proyecto VB.NET, la base de datos, los formularios, conjuntos de datos y código para gestionar unidades de medida.
Este documento presenta una guía de ejercicios paso a paso para construir aplicaciones web con formularios que acceden a datos usando controles como GridView, DetailsView, FormView y DataList en ASP.NET. Explica cómo enlazar estos controles a objetos de acceso a datos y de negocios para mostrar, editar, insertar y eliminar registros de bases de datos. Incluye requisitos, introducción y múltiples ejercicios resueltos como ejemplos para que los estudiantes completen los pasos necesarios para crear aplicaciones web simples con capac
Este documento describe cómo crear una aplicación en Visual C++ 6.0 para acceder a una base de datos MySQL. Explica cómo configurar el proyecto, conectarse a la base de datos, realizar consultas y modificar datos. Primero se preparan los datos en una tabla MySQL y luego se crea un proyecto basado en diálogo. Se configuran las rutas a las bibliotecas MySQL y se implementa la conexión a la base de datos en la clase de aplicación. Finalmente, se muestran datos de la tabla en un control de lista en el diálogo principal.
El documento proporciona instrucciones sobre cómo exportar e importar datos entre Access y SQL Server. Explica que al importar a Access, es necesario revisar los tipos de datos asignados y que al exportar desde Access a SQL Server, se debe seleccionar la base de datos de destino y las opciones de autenticación antes de ejecutar la importación. También cubre cómo generar scripts SQL que incluyan estructuras de tablas y datos.
El documento describe una aplicación ASP.NET básica para calcular el promedio de 4 valores numéricos ingresados. La aplicación importa librerías para crear un servicio web, declara una clase con un método que calcula el promedio de las 4 variables y devuelve el resultado. Luego, en la interfaz de usuario, se ingresan los valores, se llama al método a través del servicio web y se muestra el promedio calculado.
Este manual proporciona instrucciones sobre cómo realizar consultas a bases de datos desde Visual Basic, incluyendo cómo mostrar registros de una tabla, filtrar resultados mediante parámetros como radiobuttons o texto en un cuadro de texto, y agregar consultas a listboxes. También cubre la creación de toolbars con imágenes y varios ejercicios prácticos de consultas como buscar entre rangos de precios o por letra inicial de un nombre.
Este documento describe los conceptos básicos de las conexiones a bases de datos en .NET, incluyendo las capas conectada y desconectada de ADO.NET, las clases principales como SqlConnection, SqlCommand y SqlDataReader, y los proveedores de datos. También compara las ventajas y desventajas de los entornos conectado y desconectado.
El documento describe cómo conectarse a diferentes bases de datos desde Visual Basic 6.0, incluyendo Access, SQL Server y MySQL. Explica los pasos para crear conjuntos de datos para archivos .accdb y .mdb de Access, así como cómo conectarse a SQL Server y MySQL utilizando las bibliotecas adecuadas. Proporciona instrucciones detalladas sobre cómo configurar las conexiones y qué opciones seleccionar.
Este documento presenta un curso básico sobre .NET y SQL. Incluye temas como programación orientada a objetos, lenguaje UML, lenguaje SQL y lenguaje C#. También incluye ejemplos y ejercicios sobre conceptos de POO, diagramas UML, instrucciones DDL, DML y DCL en SQL, y el uso de cursores, procedimientos almacenados y desencadenadores.
NetBeans es un entorno de desarrollo integrado (IDE) de código abierto que facilita el desarrollo de aplicaciones en Java. Requiere la instalación de Java para funcionar y proporciona herramientas como resaltado de sintaxis, autocompletado de código, compilación y ejecución. También permite diseñar interfaces gráficas arrastrando componentes y agregar plugins que mejoran la funcionalidad.
Este documento describe cómo conectar bases de datos desde Visual Basic 6.0 a tres sistemas diferentes: Microsoft Access 2007, Microsoft SQL Server 2008 y MySQL. Explica los pasos para establecer la conexión en cada caso, como agregar referencias, usar controles ADO, generar cadenas de conexión y declarar variables necesarias. El objetivo final es validar que el programa funcione correctamente al acceder y manipular los datos almacenados en las diferentes bases de datos.
Este documento introduce JDBC y cómo se puede usar para acceder a bases de datos relacionales desde Java. Explica que JDBC proporciona una interfaz estándar para conectarse a diferentes bases de datos y ejecutar consultas SQL. Detalla los tipos de controladores JDBC, cómo registrar un controlador, establecer una conexión y ejecutar consultas simples y preparadas.
Este documento proporciona una introducción a LINQ to SQL, una implementación de ORM que permite modelar bases de datos relacionales con clases .NET y realizar consultas, inserciones, actualizaciones y borrados de datos de forma eficiente. Explica cómo Visual Studio incluye un diseñador para modelar la base de datos como objetos, generando clases y una clase DataContext para realizar consultas. Proporciona ejemplos de consultas básicas, actualizaciones, inserciones y borrados de datos, así como el uso de procedimientos almacenados. Conclu
Este documento describe cómo usar LINQ to SQL para consultar una base de datos relacional. Explica cómo crear un modelo de datos con LINQ to SQL y cómo usar expresiones LINQ para obtener, filtrar y paginar datos de la base de datos. También muestra cómo enlazar los resultados de las consultas LINQ a controles ASP.NET para mostrar los datos en una aplicación web.
Este documento presenta resúmenes de tres autores sobre libros o canciones que les han inspirado. El primer autor dedica su resumen a su esposa Lucía. El segundo autor cita una línea de la canción "Rosalinda's Eyes" de Billy Joel. El tercer autor cita una línea de la canción "Knights of Cydonia" de Muse.
El documento proporciona instrucciones para instalar e implementar iReport en NetBeans para crear reportes Jasper. Explica cómo descargar e instalar el plugin iReport, agregar librerías, crear un reporte de muestra vacío, y ejecutar el reporte para probar la configuración. También cubre la configuración de un datasource para Tomcat y cómo crear reportes usando el asistente, incluyendo la selección de una plantilla, agregar campos de base de datos y guardar el archivo JRXML resultante.
Este documento resume una serie de artículos sobre LINQ to SQL, un ORM que permite modelar bases de datos relacionales en clases de .NET. Explica cómo LINQ to SQL genera consultas SQL dinámicas pero también permite ejecutar consultas SQL personalizadas a través del método ExecuteQuery. Este método permite especificar el tipo de datos devuelto y participa en el seguimiento de cambios para actualizaciones. También cubre cómo usar consultas SQL personalizadas para inserciones, actualizaciones y eliminaciones.
1) El documento describe el proceso de despliegue de aplicaciones J2EE, incluyendo cuatro métodos diferentes (despliegue en caliente, perfiles de despliegue, Apache Ant, y control de despliegue basado en consola).
2) Explica cómo desplegar una aplicación Oracle ADF de tres capas en OC4J usando perfiles de despliegue desde Oracle JDeveloper, incluyendo pasos como generar descriptores de despliegue, crear perfiles para cada capa y uno global, y probar la aplicación desplegada.
3) Tamb
Este documento describe cómo crear y manejar una base de datos SQLite en Android. Explica cómo crear tablas, vistas, triggers y relaciones entre tablas mediante claves foráneas simuladas. También cubre cómo insertar, actualizar, eliminar y consultar datos, y el uso de cursores para recuperar y navegar los resultados de las consultas.
Este documento presenta la primera parte de un manual para crear una aplicación de gestión de negocios con VB.NET que permita leer, guardar, modificar y eliminar información de una base de datos. Explica cómo crear el proyecto VB.NET, la base de datos, los formularios, conjuntos de datos y código para gestionar unidades de medida.
Este documento presenta una guía de ejercicios paso a paso para construir aplicaciones web con formularios que acceden a datos usando controles como GridView, DetailsView, FormView y DataList en ASP.NET. Explica cómo enlazar estos controles a objetos de acceso a datos y de negocios para mostrar, editar, insertar y eliminar registros de bases de datos. Incluye requisitos, introducción y múltiples ejercicios resueltos como ejemplos para que los estudiantes completen los pasos necesarios para crear aplicaciones web simples con capac
Este documento describe cómo crear una aplicación en Visual C++ 6.0 para acceder a una base de datos MySQL. Explica cómo configurar el proyecto, conectarse a la base de datos, realizar consultas y modificar datos. Primero se preparan los datos en una tabla MySQL y luego se crea un proyecto basado en diálogo. Se configuran las rutas a las bibliotecas MySQL y se implementa la conexión a la base de datos en la clase de aplicación. Finalmente, se muestran datos de la tabla en un control de lista en el diálogo principal.
El documento proporciona instrucciones sobre cómo exportar e importar datos entre Access y SQL Server. Explica que al importar a Access, es necesario revisar los tipos de datos asignados y que al exportar desde Access a SQL Server, se debe seleccionar la base de datos de destino y las opciones de autenticación antes de ejecutar la importación. También cubre cómo generar scripts SQL que incluyan estructuras de tablas y datos.
El documento describe una aplicación ASP.NET básica para calcular el promedio de 4 valores numéricos ingresados. La aplicación importa librerías para crear un servicio web, declara una clase con un método que calcula el promedio de las 4 variables y devuelve el resultado. Luego, en la interfaz de usuario, se ingresan los valores, se llama al método a través del servicio web y se muestra el promedio calculado.
Este manual proporciona instrucciones sobre cómo realizar consultas a bases de datos desde Visual Basic, incluyendo cómo mostrar registros de una tabla, filtrar resultados mediante parámetros como radiobuttons o texto en un cuadro de texto, y agregar consultas a listboxes. También cubre la creación de toolbars con imágenes y varios ejercicios prácticos de consultas como buscar entre rangos de precios o por letra inicial de un nombre.
Este documento describe los conceptos básicos de las conexiones a bases de datos en .NET, incluyendo las capas conectada y desconectada de ADO.NET, las clases principales como SqlConnection, SqlCommand y SqlDataReader, y los proveedores de datos. También compara las ventajas y desventajas de los entornos conectado y desconectado.
El documento describe cómo conectarse a diferentes bases de datos desde Visual Basic 6.0, incluyendo Access, SQL Server y MySQL. Explica los pasos para crear conjuntos de datos para archivos .accdb y .mdb de Access, así como cómo conectarse a SQL Server y MySQL utilizando las bibliotecas adecuadas. Proporciona instrucciones detalladas sobre cómo configurar las conexiones y qué opciones seleccionar.
Este documento presenta un curso básico sobre .NET y SQL. Incluye temas como programación orientada a objetos, lenguaje UML, lenguaje SQL y lenguaje C#. También incluye ejemplos y ejercicios sobre conceptos de POO, diagramas UML, instrucciones DDL, DML y DCL en SQL, y el uso de cursores, procedimientos almacenados y desencadenadores.
NetBeans es un entorno de desarrollo integrado (IDE) de código abierto que facilita el desarrollo de aplicaciones en Java. Requiere la instalación de Java para funcionar y proporciona herramientas como resaltado de sintaxis, autocompletado de código, compilación y ejecución. También permite diseñar interfaces gráficas arrastrando componentes y agregar plugins que mejoran la funcionalidad.
Este documento describe cómo conectar bases de datos desde Visual Basic 6.0 a tres sistemas diferentes: Microsoft Access 2007, Microsoft SQL Server 2008 y MySQL. Explica los pasos para establecer la conexión en cada caso, como agregar referencias, usar controles ADO, generar cadenas de conexión y declarar variables necesarias. El objetivo final es validar que el programa funcione correctamente al acceder y manipular los datos almacenados en las diferentes bases de datos.
Este documento introduce JDBC y cómo se puede usar para acceder a bases de datos relacionales desde Java. Explica que JDBC proporciona una interfaz estándar para conectarse a diferentes bases de datos y ejecutar consultas SQL. Detalla los tipos de controladores JDBC, cómo registrar un controlador, establecer una conexión y ejecutar consultas simples y preparadas.
Este documento proporciona una introducción a LINQ to SQL, una implementación de ORM que permite modelar bases de datos relacionales con clases .NET y realizar consultas, inserciones, actualizaciones y borrados de datos de forma eficiente. Explica cómo Visual Studio incluye un diseñador para modelar la base de datos como objetos, generando clases y una clase DataContext para realizar consultas. Proporciona ejemplos de consultas básicas, actualizaciones, inserciones y borrados de datos, así como el uso de procedimientos almacenados. Conclu
Este documento describe cómo usar LINQ to SQL para consultar una base de datos relacional. Explica cómo crear un modelo de datos con LINQ to SQL y cómo usar expresiones LINQ para obtener, filtrar y paginar datos de la base de datos. También muestra cómo enlazar los resultados de las consultas LINQ a controles ASP.NET para mostrar los datos en una aplicación web.
Este documento describe cómo usar expresiones LINQ personalizadas con el control LINQDataSource en ASP.NET. Explica que podemos implementar un manejador de eventos Selecting para escribir código LINQ personalizado para filtrar y proyectar datos, y asignar los resultados a la propiedad Result. Aunque usemos código personalizado, el LINQDataSource aún permite paginación y ordenación eficientes en la base de datos. También permite edición siempre que los resultados sean entidades, pero las proyecciones no admiten edición debido a que no sabe cómo actualizar las entidades.
LINQ es una característica del .NET Framework que permite realizar consultas a datos de forma integrada en los lenguajes C# y VB. LINQ simplifica el acceso a datos al unificar la sintaxis de consultas para diferentes dominios como bases de datos, XML y colecciones. Visual Studio incluye herramientas para modelar bases de datos relacionales con LINQ to SQL y trabajar con XML mediante LINQ to XML.
Este documento describe cómo usar el control <asp:LinqDataSource> en ASP.NET para vincular controles de interfaz de usuario a un modelo de datos LINQ to SQL. Explica cómo crear un listado básico de productos con este control sin necesidad de escribir código personalizado. También cubre cómo limpiar las columnas innecesarias del listado y mostrar nombres en lugar de claves ajenas para proveedores y categorías.
El documento describe la instalación del conector MySQL para .NET y la implementación de la biblioteca Mysql.Data.MySqlClient. Incluye instrucciones para descargar e instalar el conector, agregar una referencia en un proyecto de Visual Studio, y explica brevemente 5 clases principales de la biblioteca como MySqlCommand, MySqlConnection, MySqlDataReader, MySqlException y MySqlDataAdapter.
LINQ permite realizar consultas a datos de manera unificada en los lenguajes .NET mediante una sintaxis similar a SQL. LINQ no impone una arquitectura específica y facilita el acceso a diferentes dominios de datos como bases de datos, XML y colecciones. Existen implementaciones como LINQ to Objects, LINQ to SQL, LINQ to Entities y LINQ to XML para consultar datos en memoria, bases de datos relacionales y documentos XML.
Este documento presenta una introducción a los tipos de datos, tablas, vistas y procedimientos almacenados en SQL Server. Explica los diferentes tipos de datos y sus categorías. Luego, describe cómo crear tablas, incluidas las llaves primarias y columnas nulas. También explica cómo crear vistas y los beneficios de su uso. Finalmente, detalla los procedimientos almacenados, incluidas sus propiedades y cómo mejoran el rendimiento de las aplicaciones.
Este documento describe tres formas de conectar una aplicación en Visual Basic a una base de datos: conectando a Microsoft Access, MySQL y SQL Server. Explica cómo importar las librerías necesarias, crear la cadena de conexión con la ubicación y credenciales de la base de datos, y abrir la conexión usando objetos como OleDbConnection y MySqlConnection.
Este documento describe cómo conectar aplicaciones Java a bases de datos utilizando JDBC. Explica los tipos de drivers JDBC, el proceso de consulta a una base de datos con JDBC, incluyendo la creación de sentencias SQL y el uso de objetos como Statement y ResultSet. También define los objetos clave de JDBC como DriverManager, Connection, Statement y ResultSet que permiten la comunicación entre Java y las bases de datos.
El documento habla sobre la conexión de una aplicación Android a una base de datos SQLite. Explica que se utilizan cursores, la clase SQLiteDatabase y SQLiteOpenHelper para crear y administrar la base de datos. También menciona a SQLiteQueryBuilder y SQLiteStatement como clases que facilitan la realización de consultas a la base de datos.
Este documento presenta una sesión sobre técnicas avanzadas de consultas en SQL Server 2014 dirigida a desarrolladores de bases de datos. La sesión cubre temas como window functions, common table expressions, secuencias, vistas indexadas, paginación de datos y la instrucción MERGE a través de ejemplos prácticos. El expositor, Ahías Portillo, es un arquitecto de datos con experiencia en el desarrollo de soluciones para varios países.
El documento describe un proyecto para desarrollar un sistema de control de inventario para una fábrica láctea. Actualmente, el control de inventario se realiza de forma manual usando hojas de cálculo de Excel, lo que genera problemas. El sistema automatizado proporcionará un registro más eficiente del inventario de insumos y productos terminados. El proyecto se desarrollará usando C# y una base de datos SQL Server.
Este documento proporciona una introducción a las técnicas de mapeo objeto-relacional (ORM) y persistencia de datos en Java. Explica conceptos clave como JDBC, SQL, transacciones y frameworks ORM como Hibernate. También incluye un ejemplo de cómo instalar MySQL y realizar operaciones básicas de consulta y modificación de datos mediante JDBC.
Este documento resume varios conceptos clave relacionados con el desarrollo de aplicaciones .NET. Explica que los proveedores de datos .NET sirven para conectarse a bases de datos y ejecutar consultas de manera eficiente. También describe ADO.NET, que proporciona componentes para crear aplicaciones que comparten datos, y LINQ, que amplía las capacidades de consulta a través de C# y Visual Basic. Finalmente, resume el propósito de los formularios en las aplicaciones y cómo Visual Studio ayuda a crear interfaces de usuario a través de controles.
Este documento presenta una introducción al lenguaje SQL y a las bases de datos. Explica brevemente la historia del SQL, desde su creación en 1974 hasta convertirse en un estándar industrial en la década de 1980. Luego describe los componentes clave del SQL, incluidos los comandos DDL y DML, cláusulas como FROM y WHERE, operadores lógicos y de comparación, y funciones como DATE y CONVERT. Finalmente, destaca la importancia de las bases de datos para almacenar y recuperar grandes cantidades de datos de forma estructurada
Este documento presenta el temario del cuarto semestre de la materia "Elaborar Sistemas de Información mediante un Lenguaje de Programación Visual". Se describen los elementos básicos de una base de datos, los tipos de información y usuarios, cómo diseñar una base de datos en el modelo entidad-relación y desarrollarla en un administrador de base de datos. También se explica cómo enlazar registros de una base de datos creada en Access a una aplicación de Visual Basic y utilizar gráficos para dibujar en este lenguaje.
Ähnlich wie Introduccion a-linq..www.freelibros.com (20)
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaAMADO SALVADOR
Distribuidor Oficial Ariston en Valencia: Amado Salvador distribuidor autorizado de Ariston, una marca líder en soluciones de calefacción y agua caliente sanitaria. Amado Salvador pone a tu disposición el catálogo completo de Ariston, encontrarás una amplia gama de productos diseñados para satisfacer las necesidades de hogares y empresas.
Calderas de condensación: Ofrecemos calderas de alta eficiencia energética que aprovechan al máximo el calor residual. Estas calderas Ariston son ideales para reducir el consumo de gas y minimizar las emisiones de CO2.
Bombas de calor: Las bombas de calor Ariston son una opción sostenible para la producción de agua caliente. Utilizan energía renovable del aire o el suelo para calentar el agua, lo que las convierte en una alternativa ecológica.
Termos eléctricos: Los termos eléctricos, como el modelo VELIS TECH DRY (sustito de los modelos Duo de Fleck), ofrecen diseño moderno y conectividad WIFI. Son ideales para hogares donde se necesita agua caliente de forma rápida y eficiente.
Aerotermia: Si buscas una solución aún más sostenible, considera la aerotermia. Esta tecnología extrae energía del aire exterior para calentar tu hogar y agua. Además, puede ser elegible para subvenciones locales.
Amado Salvador es el distribuidor oficial de Ariston en Valencia. Explora el catálogo y descubre cómo mejorar la comodidad y la eficiencia en tu hogar o negocio.
HPE presenta una competició destinada a estudiants, que busca fomentar habilitats tecnològiques i promoure la innovació en un entorn STEAM (Ciència, Tecnologia, Enginyeria, Arts i Matemàtiques). A través de diverses fases, els equips han de resoldre reptes mensuals basats en àrees com algorísmica, desenvolupament de programari, infraestructures tecnològiques, intel·ligència artificial i altres tecnologies. Els millors equips tenen l'oportunitat de desenvolupar un projecte més gran en una fase presencial final, on han de crear una solució concreta per a un conflicte real relacionat amb la sostenibilitat. Aquesta competició promou la inclusió, la sostenibilitat i l'accessibilitat tecnològica, alineant-se amb els Objectius de Desenvolupament Sostenible de l'ONU.
KAWARU CONSULTING presenta el projecte amb l'objectiu de permetre als ciutadans realitzar tràmits administratius de manera telemàtica, des de qualsevol lloc i dispositiu, amb seguretat jurídica. Aquesta plataforma redueix els desplaçaments físics i el temps invertit en tràmits, ja que es pot fer tot en línia. A més, proporciona evidències de la correcta realització dels tràmits, garantint-ne la validesa davant d'un jutge si cal. Inicialment concebuda per al Ministeri de Justícia, la plataforma s'ha expandit per adaptar-se a diverses organitzacions i països, oferint una solució flexible i fàcil de desplegar.
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialAMADO SALVADOR
Explora el catálogo completo de cajas fuertes BTV, disponible a través de Amado Salvador, distribuidor oficial de BTV. Este catálogo presenta una amplia variedad de cajas fuertes, cada una diseñada con la más alta calidad para ofrecer la máxima seguridad y satisfacer las diversas necesidades de protección de nuestros clientes.
En Amado Salvador, como distribuidor oficial de BTV, ofrecemos productos que destacan por su innovación, durabilidad y robustez. Las cajas fuertes BTV son reconocidas por su eficiencia en la protección contra robos, incendios y otros riesgos, lo que las convierte en una opción ideal tanto para uso doméstico como comercial.
Amado Salvador, distribuidor oficial BTV, asegura que cada producto cumpla con los más estrictos estándares de calidad y seguridad. Al adquirir una caja fuerte a través de Amado Salvador, distribuidor oficial BTV, los clientes pueden tener la tranquilidad de que están obteniendo una solución confiable y duradera para la protección de sus pertenencias.
Este catálogo incluye detalles técnicos, características y opciones de personalización de cada modelo de caja fuerte BTV. Desde cajas fuertes empotrables hasta modelos de alta seguridad, Amado Salvador, como distribuidor oficial de BTV, tiene la solución perfecta para cualquier necesidad de seguridad. No pierdas la oportunidad de conocer todos los beneficios y características de las cajas fuertes BTV y protege lo que más valoras con la calidad y seguridad que solo BTV y Amado Salvador, distribuidor oficial BTV, pueden ofrecerte.
1. Usando LINQ to SQL (1ª Parte)
LINQ, LINQ to SQL, Scott Guthrië Add comments
may202007
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 objetos e inicializadores de
colecciones.
• 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
eligan, 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:
2. 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.
3. 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ñadiran 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 boton “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 traves 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:
4. 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 de la base de datos
El siguiente código usa una consulta LINQ para obtener una secuencia IEnumerable de
objetos Product. Fijáos que este código está consultando a traves de la relación
Product/Category para obtener aquellos productos de la categoría “Beverages”.
C#:
5. VB:
2) Actualizando un producto en la base de datos.
El código siguiente muestra cómo obtener un producto de la base de datos, actualizar su
precio, y guardar los cambios en la base de datos:
C#:
VB:
Nota: VB en “Orcas” Beta1 no soporta Lambdas aún. Pero en la Beta2 sí -de forma que el
código anterior se podrá escribir de una forma más concisa.
3) Añadir una nueva categoría y dos nuevos productos en la base de datos.
El siguiente código muestra cómo crear una nueva categoría, y entonces crear dos nuevos
productos y asociarlos a la nueva categoría. Los tres son después guardados en la base
de datos.
6. Fijaos como no necesitamos administrar manualmente las relaciones
primarykey/foreignkey. Sólo tenemos que añadir los objetos Product en la colección
“Products” de la categoría, y luego añadir el nuevo objeto Category en la colección de
“Categories” del DataContext, LINQ to SQL sabrá automáticamente crear las PF/FK
necesarias:
C#:
4)Borar productos de la base de datos.
El código siguiente muestra cómo borrar todos los productos Toy de la base de datos:
C#:
VB:
7. 5) Llamar a un procedimiento almacenado.
El código siguiente muestra cómo obtener entidades de la tabla Product sin usar una
consulta LINQ, sino llamando al procedimiento almacenado “GetProductsByCategory” que
añadimos a nuestro modelo de datos. Fijáos que cuando obtenemos los resultados de la
tabla Product, podemos actualizar/borrarlos y llamar a db.SubmitChanges() para hacer las
modificaciones en la base de datos.
C#:
VB:
8. 6) Obtener productos con paginado del lado del servidor
El código siguiente muestra cómo implementar un paginado eficiente en el lado servidor
como parte de una consulta LINQ. Usando los operadores Skip() y Take(), sólo
devoleremos 10 filas de la base de datos – a partir de la fila 200.
C#:
VB:
Resúmen:
9. LINQ to SQL nos permite modelar la capa de datos de nuestras aplicaciones de una forma
simple y limpia. Una vez que hayamos definido nuestro modelo de datos, podemos realizar
consultas, inserciones, actualizaciones y borrados sobre ella de forma fácil y eficiente.
Espero que esta introducción os haya abierto el apetito de aprender más. En las próximas
semanas continuaré esta serie de post explorando el LINQ to SQL en más detalle.
Espero que sirva.
10. LINQ to SQL (2ª Parte – Definiendo nuestras clases
del modelo de datos)
.NET, ASP .NET, LINQ, LINQ to SQL, Visual Studio Add comments
may302007
En la primera parte de la serie de post sobre LINQ to SQL hablé sobre “¿qué es LINQ to
SQL?” y vimos por encima algunos escenarios que permite.
En aquél post pusimos unos cuantos ejemplos de código donde demostrábamos cómo
mejorar la parte de datos usando LINQ to SQL:
• Cómo consultar una base de datos.
• Cómo actualizar filas en una base de datos
• Cómo añadir y relacionar varias filas en una base de datos.
• Cómo eliminar filas de la base de datos.
• Cómo llamar a procedimientos almacenados.
• Cómo obtener datos con paginación en el servidor.
Mejoramos todos estos escenarios usando un modelo de clases de LINQ to SQL como
éste:
11. En este segundo post de la serie vamos a ver en más detalle cómo crear el modelo
anterior con LINQ to SQL.
LINQ to SQL, el diseñador de LINQ to SQL, y todas las características que estamos viendo
saldrán con la versión de .NET 3.5 y en la release de Visual Studio “Orcas”.
Podéis seguir todos los pasos siguientes descargándo tanto Visual Studio “Orcas” Beta
1 o Visual Web Developer Express “Orcas” Beta 1. Podéis instalar las dos y usarlas sin
ningún problema con Visual Studio 2005.
Crear un nuevo modelo de datos LINQ to SQL
Podemos añadir un modelo de datos de LINQ to SQL a un projecto ASP.NET, Class
Library o Windows, con la nueva opción “Add New Item” seleccionando “LINQ to SQL”:
12. Seleccionando “LINQ to SQL” lanzará el diseñador de LINQ to SQL, y nos permitirá
modelar las clases que representen una base de datos relacional. También creará una clas
fuertemente tipada “DataContext” que tendrá las propiedades que representarán cualquier
tabla que modelemos de la base de datos, así como métodos para cada procedimiento
almacenado que modelemos. Como describimos en la primera parte de esta serie de post,
la clase DataContext es el conducto principal que usaremos tanto para consultar la base
de datos como para guardar los cambios que hagamos.
Aquí tenéis una captura de pantalla de un diseño LINQ to SQL ORM vacío, es lo que
veréis despues de crear un nuevo modelo de datos LINQ to SQL:
13. Clases Entidad (Entity)
LINQ to SQL nos permite modelar clases que mapeen una base de datos. Estas clases
son típicamente conocidas como “Clases Entidad” (en ingles “Entity Classes”) y a las
instancias se las conoce como “Entidades” (en ingles “Entities”). Las clases entidad
mapean a tablas de una base de datos. Las propiedades de una clase entidad
normalmente mapean las columnas de la tabla. Cada instancia de una clase entidad
representa a una fila de una tabla de la base de datos.
Las clases entidad definidas por LINQ to SQL no tienen que derivar de una clase base
específica, lo que significa que pueden heredar de cualquier objeto que queramos. Todas
las clases creadas por el diseñador de LINQ to SQL se definen como “clases parciales” –
con lo que podemos, opcionalmente, añadir propiedades adicionales, métodos y eventos.
A diferencia de la característica de DataSet/TableAdapter que aporta VS 2005, cuando
usamos el diseñador de LINQ to SQL no tenemos que especificar qué consultas SQL se
tiene que usar cuando creamos el modelo de datos y la capa de acceso.
En lugar de eso, nos centramos en definir las clases entidad, cómo se mapean con la base
de datos, y las relaciones entre ellas. La implementación del ORM de LINQ to SQL se
encargará de generar la lógica de ejecución SQL por nosotros en tiempo de ejecución para
que podamos interactuar y usar las entitades de datos. Podemos usar sintaxis de
14. consultas LINQ para indicar cómo consultar nuestro modelo de datos de forma
fuertemente tipada.
Crear clases entidad de la base de datos.
Si ya tenemos un esquema de base de datos definido, podemos usarlo para crear clases
entidad LINQ to SQL.
La forma más sencilla de conseguirlo es abrir la base de datos desde el “Server Explorer”
de Visual Studio, seleccionar las tablas y vistas (Views) que queramos modelar, y
arrastrarlas al diseñador LINQ to SQL:
Cuando añadimos estas dos tablas (Categories y Products) y una vista (Invoices) de la
base de datos “Northwind” al diseñador de LINQ to SQL, tendremos las siguientes clases
entidad creadas a partir del esquema de la base de datos:
15. Usando estas clases, podemos ejecutar todos los ejemplos de código (excepto el de
procedimientos almacenados) que vimos en la primera parte de esta serie sobre LINQ to
SQL. No tenemos que añadir ningún código adicional o configuración para habilitar los
escenarios de consulta, inserción, actualización, borrado, y paginación en el servidor.
Nombrado y pluralización
Una de las cosas de las que os daréis cuenta usanto el diseñador de LINQ to SQL es que
automáticamente “pluraliza” los nombres de las tablas y columnas cuando crea las clases
entidad basádas en el esquema de la base de datos. Por ejemplo: la tabla “Products” del
ejemplo se resuelve en una clase “Product”, y la tabla “Categories” se resuelve en la clase
“Category”. Este nombrado de clases hace que vuestro modelo sea más consistente con
las convenciones de nomenclatura de .NET, y encuentro bastante útil que el diseñador
haga esto por mi (especialmente cuando añadimos muchas tablas a nuestro modelo).
Si no os gusta el nombre de una clase o propiedad que el diseñador ha generado, siempre
podréis cambiarlo por el que queráis. Podéis hacerlo editanto el nombre de la
entidad/propiedad en el mismo diseñador o cambiarlo en la rejilla de propiedades:
16. Esta habilidad de nombrado de entidades/propiedades/asociaciones es muy útil en un gran
número de casos. En particular:
1) Cuando cambie el nombre de una tabla/columna de vuestra base de datos. Como
vuestras entidades tendrán nombres diferentes, podéis decidir actualizar las reglas de
mapeado y no el código de vuestra aplicación o las consultas para usar esas nuevas
tablas/columnas.
2) Cuando en el esquema de la base de datos tengais nombres que no son “limpios”. Por
ejemplo, en lugar de usar “au_lname” y “au_fname” para los nombres de las propiedades
en una clase entidad, podéis usar los nombres de “LastName” y “FirstName” en vuestras
clases entidad y programar con esos nombres, en vez de cambiarlo en la base de datos.
Relaciones
Cuando arrastremos objetos del “server explorer” al diseñador “LINQ to SQL”, Visual
Studio comprobará las relaciones de clave primaria y ajenas de los objetos, y basándose
en ellas creará relaciones por defecto entre las diferentes clases entidad que genere. Por
ejemplo, cuando añadimos las tablas Products y Categories de la base de datos
NorthWind al diseñador LINQ to SQL podemos ver que se ha deducido una relación de
uno a n entre ellas (esto se indica con la felcha del navegador):
17. Esta relación hará que la clase entidad Product tenga una propiedad llamada “Category”
que los desarrolladores usarán para acceder a la entidad Category para un Product dado.
También hará que la clase Category tenga una colección de “Products” que permitirá a los
desarrolladores obtener todos los productos de una Category.
Si no nos gusta cómo el diseñador a nombrado a la relación, siempre podrémos cambiarlo.
Sólo hay que hacer clic en la felcha en el diseñador, ver las propiedades y cambiar el
nombre.
Retrasar la carga
LINQ to SQL permite a los desarrolladores especificar si las propiedades de las entidades
deben precargarse o retrasarse hasta el primer acceso. Podemos personalizar las reglas
18. de precarga/retraso para las propiedades de las entidades seleccionando cualquier
propiedad o asociación en el diseñador, y en las propiedades poner la propiedad “Delay
Loaded” a true o false.
Por poner un ejemplo, imaginemos la clase entidad “Category” del modelo anterior. La
tabla “Categories” de la base de datos “NorthWind” tiene una columna “Picture” que
contiene una imagen (potencialmente grande) para cada categoría, y sólo queremos esa
imagen cuando vaya a usarla (y no cuando esté haciendo una consulta para obtener los
nombres de las categorías en una lista).
Podríamos configurar la propiedad Picture para que se retrase su carga seleccionandola
en el diseñador de LINQ to SQL y en las propiedades poner “Delay Loaded” a true:
Nota: Además de configurar el significado de la precarga/retraso de las entidades,
podemos sobreescribirlo vía código cuando hagamos consultas LINQ en las clases entidad
(lo veremos en el siguiente post de esta serie).
Usando procedimientos almacenados.
19. LINQ to SQL nos permite modelar procedimientos almacenados como métodos de nuestra
clase DataContext. Por ejemplo, supongamos que hemos definido un procedimiento
almacenado simple para obtener la información de un producto de un categoryID:
Podemos usar el server explorer de Visual Studio y arrastrar este procedimiento
almacenado al diseñador de LINQ to SQL para obtener un método fuertemente tipado que
invocará a este procedimiento almacenado. Si lo arrastramos encima de la entidad
“Product” en el diseñador, el diseñador declarará que el procedimiento almacenado
devuelve un IEnumerable<Product>:
Podemos usar tanto una consulta SQL (que generará una consulta SQL adhoc) o invocar
el procedimiento almacenado añadido para obtener las entidades product de la base de
datos:
20. Usar procedimientos almacenados para actualizar/borrar/insertar datos.
Por defecto LINQ to SQL creará automáticamente expresiones SQL apropiadas para
cuando tengamos que insertar/actualizar/borrar entidades. Por ejemplo, si escribimos el
siguiente código LINQ to SQL para actualizar algunos valores en una instancia de la
entidad “Product”:
LINQ to SQL creará y ejecutará una sentencia “UPDATE” apropiada para cuando
aceptemos los cambios (Veremos esto en más profundidad en otros post).
21. Podemos definir procedimientos almacenados personalizados para INSERT, UPDATE,
DELETE. Para configurar esto, hacemos clic en una entidad del diseñador LINQ to SQL y
en las propiedades de Delete/Insert/Update, en el botón “…”, y ponemos un procedimiento
almacenado que ya hayamos definido.
Lo curioso es que el cambio de estas propiedades se está realizando en la capa de mapeo
de LINQ to SQL – lo que implica que la actualización del código que vimos ántes sigue
funcionando sin tener que hacer ninguna modificación. Con esto libramos a los
desarrolladores de que si cambiamos el modelo de datos LINQ to SQL, no tienen que tocar
ningún código para que sigua funcionando si deciden poner un procedimiento almacenado
personalizado.
Resumen
LINQ to SQL provee una forma limpia de modelar las capas de datos de nuestras
aplicaciones. Una vez que tengamos nuestro modelado de datos, podemos realizar de
forma eficiente consultas, inserciones, actualizaciones, y borrados sobre él.
Con el diseñador de LINQ to SQL que viene en Visual Studio y en Visual Web Developer
Express podemos crear y administrar nuestros modelso de datos para LINQ to SQL
extremadamente rápido. El diseñador LINQ to SQL también permite una gran flexibilidad
22. que nos permite personalizar el comportamiento por defecto y sobreescribir/extender el
sistema para que se adapte a nuestras necesidades.
En próximos post usaremos este modelo que hemos creado para ver en más detalle los
procesos de consulta, inserciones, actualizaciones y borrados. En estos post también
veremos cómo añadir validaciones negocio/datos personalizadas a las entidades que
hemos diseñado.
Mike Taulty tiene una gran cantidad de videos sobre LINQ to SQL aquí, os recomiendo que
los veáis. Así tenéis una forma de aprender viendo cómo se usa LINQ to SQL.
24. Obteniendo productos.
Una vez que tenemos definido nuestras clases del modelo de datos, podemos consultar y
obtener fácilmente datos de nuestra base de datos. LINQ to SQL nos permite esto usando
la sintáxis de consultas de LINQ sobre la clase NorthwindDataContext que creamos con
el diseñador LINQ to SQL.
Por ejemplo, para obtener e iterar sobre una secuencia de objetos Product podemos
escribir el siguiente código:
25. En esta consulta hemos usado la sentencia “where” en nuestra consulta LINQ para
devolver aquellos productos de una categorÃa. Estamos usando el campo/propiedad
CategoryID del producto para hacer el filtro.
Una de las cosas que nos aporta LINQ to SQL es que nos da una total flexibilidad en
cómo consultar nuestros datos, y podemos aprovecharnos de las asociaciones que
hicimos cuando modelamos las clases de LINQ to SQL para hacer consultas más
naturales y ricas sobre la base de datos. Por ejemplo, podemos modificar el filtro de la
consulta por el CategoryName en lugar de por el CategoryID con la siguiente consulta
LINQ:
Fijáos en cómo estamos usando la propiedad “Category” de cada objeto Product para
filtrarlos por CategoryName. Esta propiedad fue creada automáticamente por LINQ to
SQL ya que modelamos las clases Category y Product con una relación “varios a uno” en
la base de datos.
28. Enlazando consultas LINQ to SQL a controles ASP.NET
Los resultados de las consultas LINQ implementa 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:
29. Restringiendo los resultados de la consulta.
Hasta ahora, cuando evaluamos una consulta de productos, estamos obteniendo por
defecto todas las columnas de datos necesarias para cubrir la entidad de Product.
Por ejemplo, esta consulta para obtener productos:
El resultado de esta consulta es:
30. Normalmente sólo queremos un subconjunto de los datos de cada producto. Podemos
usar la nueva caracterÃstica que LINQ y los compiladores de C# y VB tienen para indicar
que sólo queremos un subconjunto de los datos, modificando la consulta LINQ to SQL de
la siguiente forma:
Con esto obtendremos un subconjunto de los datos que se obtienen de la base de datos
(como vemos con el visor del debugger):
32. La sentencia SQL anterior hace que los valores NumOrders y Revenue se calculen
dentro del servidor SQL, y devuelve los siguientes valores de la base de datos (realmente
rápido):
Podemos enlazar el resultado anterior a nuestro gridview:
34. En este ejemplo estamos declarando un tipo anónimo que usa la inicialización de
objetos para amoldar y definir la estructura del resultado. Y seguimos teniendo intellisense
en VS 2008, chequeo de compilación y soporte para refactoring con estos tipos
anonimos:
37. Nota: Cuando trabajamos contra SQL 2005, LINQ to SQL usará la función SQL
ROW_NUMBER() para crear toda la lógica de paginación en la base de datos. Esto nos
asegura que sólo devolverá las 10 filas de datos que queremos mostrar en la página: