Usando LINQ TO SQL – Parte 1


Lenguaje Integrado de Consultas – LINQ es una de las novedades de la versión 3.5 de .Net Framework. Esta tecnología integra las consultas a los diferentes repositorios de datos como colecciones, cadenas, archivos, base de datos relacionales, objetos DataSet, y XML.
LINQ TO SQL es exclusivamente para acceder a datos de SQL SERVER. Es una implementación de O/RM (Object Relational Mapping) mapeador de objetos relacionales. El objetivo es que nuestro modelo de base de datos se mapee en un modelo de objetos, en cristiano, nuestras tablas se traducen en clases (Entidades) y los procedimientos almacenados en Métodos.

Aquí tengo mi modelo de datos VentasDemo en SQL Server 2008. Mi modelo tiene cuatro tablas: Producto, Categorías, Facturas y DetalleFactura. Se tiene las respectivas relaciones entre las tablas como se observa en la imagen:
image

Una vez que tengas el modelo de datos. Iniciamos el VS2008, y agregamos la plantilla “LINQ TO SQL Classes”  el archivo tiene el nombre de VentasDemo y su extensión es dbml.

image
A través del Server Explorer me conecto a la base de datos VentasDemo y arrastro las cuatro tablas al diagrama DataContext.

image
¿Que es el DataContext? es una clase que nos permite a través de ella realizar nuestras consultas a las entidades de nuestra base de datos. Mayor información en MSDN Library - http://msdn.microsoft.com/es-es/library/system.data.linq.datacontext.aspx

image
En esta primera parte abordamos como generar nuestro DataContext, partiendo de nuestro modelo de datos en SQL Server. Para descarga la base de datos Haga Click Aquí. En la segunda parte revisaremos operaciones de consultas.

Saludos,

4 comentarios:

Anónimo dijo...

Muy interesante muchas gracias pr el aporte :D ... yo estoy llevando LINQ y me parece fabuloso porque facilita muchas cosas al programador. Digame usted cree que seria reconmendable exportar un sistema a LINQ ya que en mi trabajo quieren hacer eso y me piden mi opinion ustede que piensa.
Saludos Gracias

Alonso Morales Salazar on 30 de mayo de 2010 11:26 dijo...

Estimado, me agrada LINQ, pero tiene sus cosas, revisa la segunda parte USANDO LINQ TO SQL - http://www.blogams.com/2010/05/usando-linq-to-sql-parte-2.html

Como ves, el código Transact-SQL generado dinámicamente es algo que tienes en tomar en cuenta. Que pasaría si el DBA de tu empresa bloque los acceso a la BD a través de Transact-SQL y solo te permite el acceso a procedimientos almacenados. LINQ TO SQL también mapea los SP como métodos, pero pierdes la características de las consultas. En la tercera parte escribiré sobre este tema. Migrar un sistema es complicado y tienes que considerar muchas variables. La primera variable: tu sistema usa SP?

Saludos,

Anónimo dijo...

Si usan full SP pero es un sistema que lo hizo un programador Junior y bueno a mi me va traer problemas porque el programador ya no esta y lo que pense es hacer otro sistema paralelo a ese mientras funciona y asi crear modulos independientes hasta terminar de hacer todo y quitar ese sistema, pero no se si hacerlo asi con N Capas o hacerlo con LINQ. No quisiera tener problemas mas delante si lo llego hacer con LINQ. Sobre la restriccion de los transac me podrias dar un poco mas de informacion o un link sobre el tema,en donde estoy solo hay dos q programan no es muy organizada que digamos y bueno lo que deseo es organizar sus sistemas y migrarlos para que sean mas eficientes. Muchas gracias por responder. Saludos.

Alonso Morales Salazar on 7 de junio de 2010 19:20 dijo...

Estimado, siempre es un problema heredar sistemas. Y peor aun cuando el programador no uso algún estandar de desarrollo. El diseño a tres capas es una modelo que uso varios años y me permitido establecer estandares
con los programadores, escalabilidad y mantenimiento mas efecientes.

Para la capa de datos tienes varias opciones como: LINQ TO SQL, ADONET Entity Framework o el clasico
System.Data.SQLClient.

Saludos :)

 

Copyright 2008 All Rights Reserved Revolution Two Church theme by Brian Gardner Converted into Blogger Template by Bloganol dot com