Linq: Nunca es tarde para aprender
Sin duda, debería haberme subido al tren de Linq hace muchísimo tiempo pero mas vale tarde que nunca. Hoy me propongo iniciar mi aprendizaje de Linq, y estaré posteando a diario mis avances, con la esperanza de que lo que escriba aquí le sea útil a alguien que, aunque tarde como yo, quiere iniciarse en esta tecnología. Estoy usando el libro "Linq for Visual C# 2005" de Fabio Claudio Ferracchiati, un libro de poco más de 170 páginas, que nos servirá por lo menos para dominar los rudimentos, para luego pasar a cosas más avanzadas. Primero lo primero: Necesitamos datos que podamos consultar. Linq puede consultar datos de diversas fuentes como objetos en memoria (Linq to Objects), bases de datos SQL, Ficheros XML entre otros. Empezaré usando Linq To Objects hasta dominar la sintaxis y luego (pronto, espero) pasaré a experimentar con las otras fuentes de datos. Empecemos definiendo una sencilla clase Persona: public string Apellido public int Id public Persona(int id, int idRol, string apellido, string nombre) } Posteriormente extenderemos esta clase y añadiremos otras, pero por el momento nos sirve tal cual está. Para que nuestros objetos puedan ser consultados mediante Linq, deben implementar la interface IEnumerable personas= new List<Persona>(); Ya estamos listos para empezar a consultar los datos usando Linq. Una consulta realmente simple es: var query = from p Hay mucho que explicar en esta simple consulta. Podemos ver los resultados de nuestra consulta asignando la variable query que hemos obtenido a un bindingSource, asi: bindingSource1.DataSource = query; entonces podremos visualizar inmediatamente los resultados en un DataGridView, por ejemplo. No olvidar fijar la propiedad AutoGenerateColumns a true. Un par de consultas más, a manera de ejemplo: var query = from p var query = from p
public class Persona
{
private int id;
private int idRol;
private string apellido;
private string nombre;
{
get { return apellido; }
set { apellido = value; }
}
{
get { return nombre; }
set { nombre = value; }
}
public int IdRol
{
get { return idRol; }
set { idRol = value; }
}
{
get { return id; }
set { id = value; }
}
{
this.Id = id;
this.IdRol = idRol;
this.Apellido = apellido;
this.Nombre = nombre;
}
personas.Add(new Persona(1, 1, "Anderson", "Brad"));
personas.Add(new Persona(2, 2, "Gray", "Tom"));
personas.Add(new Persona(3, 2, "Perez", "Juan"));
personas.Add(new Persona(3, 3, "Morales", "Pedro"));
in personas
select p;
in personas
select new { p.Apellido, p.Nombre};
Por último,
in personas
where p.Id == 1
select new { p.Apellido, p.Nombre };
Hasta aquí llegamos con esta breve introducción.
No hay comentarios.:
Publicar un comentario