LINQ, aproximación estudiantil

Para este artículo les traigo algunas nociones básicas de la utilización de LINQ (en general) algo interesante que nos provee la versión 3.5 del Framework de MS.

Voy a mostrar algunos ejemplos simples solo para introducir al tema, que para mi gusto es un escenario más que interesante, no solo para el segmento de persistencia sino para el tratamiento general de una solución (este ejemplo es un tanto especifico).

Manos a la obra…

Para la práctica de este artículo desarrollé un escenario muy simple que involucra a una capa de presentación (Web Application) y un capa de manejo de datos donde voy a colocar elementos Linq to SQL.

Veamos un diagrama simple de componentes de la solución:


(Escenario extremadamente simple)

Vamos a trabajar en primer lugar sobre la biblioteca BusinessLinq:

Creamos un elemento Linq to sql clases:


En este punto el IDE crea un archivo "dbml" donde podemos conectar con un repositorio de datos para la generación de las clases.


Para analizar pedidos

Para este ejemplo he realizado un drag and drop de la tabla clientes y de la tabla pedido y de forma automatizada la herramienta genera lo necesario para el manejo de las entidades, veamos la vista del class view:



Otro Linq to Sql:


Para analizar Dispositivos

Veamos tambein el class view:


En este punto ya tenemos para consumir del Context.

En el flujo de pasos del ejercicio, solo voy a crear la referencia desde el web site para consumir la biblioteca y listo ya estamos en condiciones de utilizar la solución.

En este punto les voy a dejar segmento de código:

Contexto:

DataClassesExampleDataContext db = new
DataClassesExampleDataContext();

Consulta:

Con Where:


var dispositivos = from p in db.Dispositivos


where p.Nombre == "Surtidor"


select p;

General:


var dispositivos = from p in db.Dispositivos


select p;


Enlazado con controles de la UI:

gvDispositivos.DataSource = dispositivos;

gvDispositivos.DataBind();


De esta forma rápidamente se puede consultar sobre la data del repositorio.

Veamos una actualización de Datos:

Contexto:

DataClassesExampleDataContext db = new
DataClassesExampleDataContext();

Consulta sobre el registro a trabajar:

Dispositivo objDispositivo = db.Dispositivos.Single(p => p.Nombre == "Surtidor");

Actualización de uno de los datos:

objDispositivo.Modelo = "2008";

Guardar cambios:

db.SubmitChanges();

¿Simple no?

Vamos a ver una agregación:

Contexto:

DataClassesExampleDataContext db = new
DataClassesExampleDataContext();

Agregando:


Dispositivo obj = new
Dispositivo();

obj.Nombre = "NuevoDemo";

obj.NumeroSerie = "1234";

obj.Modelo = "2007";

obj.Tipo = "demo";

Inserto:

db.Dispositivos.InsertOnSubmit(obj);

Grabo:

db.SubmitChanges();

Por último vamos a ver como eliminar para cerrar algunas ideas de corte básico.

Contexto:

DataClassesExampleDataContext db = new
DataClassesExampleDataContext();

Consulta para encontrar los registros a eliminar:


var QueryDispositivos = from p in db.Dispositivos


where p.DispositivoID == 3


select p;

Eliminando:

db.Dispositivos.DeleteAllOnSubmit(QueryDispositivos);

Grabar:

db.SubmitChanges();

Espero que les sea de utilidad este acercamiento con tecnología Linq.

Entradas más populares de este blog

TensorFlow, una simple aproximación al calculo numérico en Python

7 arquetipos #Polymer 1.0 puntos esenciales prácticos

Iniciando la representación de una mobile-web-page pensando en el rendimiento - Parte 1