none
TABLA REFERENCIAS CRUZADAS RRS feed

  • Pregunta

  • Alguién tiene idea de cómo se hace en linq una consulta con tablas de referencias cruzadas cómo en access???...algún ejemplo??? es posible??

    saludos!

    lunes, 2 de julio de 2012 20:55

Todas las respuestas

  • puedes explicarte un poco mejor?

    Spanish dev WLA

    miércoles, 4 de julio de 2012 19:24
  • Hola Sebastian, todo es posible :p

    Te cuento un poco el planteamiento:

    1) Obtener los datos que van a ir como cabecera de la fila.

    2) Obtener los datos que van a ir como cabecera de columna.

    3) Definir la query.

    Te planteo un ejemplo sencillo:

     public class Test
        {
            public string Empleado { get; set; }
            public int Mes { get; set; }
            public int Valor { get; set; }
        }

    Partiendo de esa clase de ejemplo, vamos a definir la query encargada de mostrar la información:

    var results = from string empleado in datos.Select(a => a.Empleado).Distinct()
                              select new
                              {
                                  empleado,
                                  Columnas = (from int mes in Meses
                                              select new { Mes = mes, Valor =(int?)( datos.Where(a => a.Mes == mes && a.Empleado == empleado).FirstOrDefault() == null ? DBNull.Value : datos.Where(a => a.Mes == mes && a.Empleado == empleado).FirstOrDefault().Valor) }).ToDictionary(a => a.Mes, a => a.Valor)
                              };

    El conjunto de claves valor (Mes - Valor) lo vas a tener en un diccionario.

    Estoy convencido que hay mas formas de resolverlo, y seguro que alguna es más optima que esta.

    Espero que te sirva.


    Javier Torrecilla
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    TabControl con Mejoras

    jueves, 5 de julio de 2012 8:53