Titulo

Solo disponible en BuenasTareas
  • Páginas : 5 (1136 palabras )
  • Descarga(s) : 0
  • Publicado : 17 de febrero de 2011
Leer documento completo
Vista previa del texto
Usando LINQ to SQL (1ª Parte)
Publicado en LINQ, LINQ to SQL, Scott Guthrië a 7:18 pm por Juanma
En los últimos meses he escrito una serie de post que cubrían algunas de las característcias 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 deprogramació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 el las expresiones de consulta, y desarrollar herramientas que aporten intelisense, debugging, y un gran soportepara 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 biene 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 unmodelo 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 decada 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 larelació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 unainstancia 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 deProduct 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...
tracking img