DataTable categorias = new DataTable();
categorias.Columns.Add("id",
typeof(int));
DataTable productos = new DataTable();
productos.Columns.Add("id", typeof(int));
productos.Columns.Add("name", typeof(string));
for (int i = 1; i < 4; i++)
{
categorias.Rows.Add(i);
}
Random rd = new Random(DateTime.Now.Millisecond);
for (int i = 1; i < 11; i++)
{
productos.Rows.Add(rd.Next(1, 4), "Name" + i);
}
DataSet ds = new DataSet();
ds.Tables.Add(categorias);
ds.Tables.Add(productos);
ds.Relations.Add(categorias.Columns[0], productos.Columns[0]);
Ahora veamos como realizar una consulta filtrando por el campo name:
var likejoin =
category.Rows.OfType<DataRow>().Join(product.Rows.OfType<DataRow>(),
cat => cat.Field<int>("id"),
prod =>
prod.Field<int>("id"), (cat, prod) => new { Id =
cat.Field<int>("id"),
Nombre =
prod.Field<string>("name") }).Where(c =>
c.Nombre.Contains("ElTavo"));
Observemos que a través de la extensión Join relacionamos las tablas que necesitemos, y debemos especificar la tabla de relación seguido de los campos de llave primaria que relacionaran las tablas, posteriormente especificamos que campos de las tablas vamos a mostrar en el resultado y por ultimo aplicamos la sentencia WHERE en este caso para filtrar los productos cuyo nombre contenga la palabra ElTavo.
Eso es todo, espero les sea de utilidad.
Saludos!!
No hay comentarios:
Publicar un comentario