none
Hacer group by con varios join linq C# RRS feed

  • Pregunta

  • Estoy realizando los Group by sobre...

    group gi by gi.GrupoInvestigacion into gruposInvestigacion



    sobre..

     group i by i.Nombres + ' ' + i.Apellidos into Autores



    en este ultimo deseo realizar una concatenación de nombre y apellidos...

    y por ultimo

    group ap by ap.NombreAreaConocimiento into NombreArea



    a este tengo que revisar que hallan datos o no; asi que le indique con la siguiente linea:

    join a in Db.AreaConocimiento on p.Id equals a.IdProducto into AreaConoProducto                                         from ap in AreaConoProducto.DefaultIfEmpty()


    Tengo el siguiente query:

                    var ListaProdFiltrado = (from gp in Db.GrupoInvestigacionInvesProducto
                                         join gii in Db.GrupoInvestigacionInvestigadorModel on gp.IdGrupoInvestigacionInvestigador equals gii.Id
                                         join gi in Db.GrupoInvestigacionModel on gii.IdGrupoInvestigacion equals gi.IdGrupoInvestigacion

                                         //group gi by gi.GrupoInvestigacion into gruposInvestigacion

                                         join i in Db.InvestigadorModel on gii.IdInvestigador equals i.IdInvestigador

                                        // group i by i.Nombres + ' ' + i.Apellidos into Autores

                                         join p in Db.ProductoIntelectual on gp.IdProducto equals p.Id
                                         join a in Db.AreaConocimiento on p.Id equals a.IdProducto into AreaConoProducto
                                         from ap in AreaConoProducto.DefaultIfEmpty()//*** TODO: no va esta relacion, revisarla

                                         //group ap by ap.NombreAreaConocimiento into NombreArea

                                         where gii.IdGrupoInvestigacion == gi.IdGrupoInvestigacion
                                         where gii.IdInvestigador == i.IdInvestigador
                                         where gii.Eliminado == false 
                                         select new ProductosConsultaViewModel
                                         {
                                             IdProducto = p.Id,
                                             TipoProducto = p.TipoProducto,
                                             NombreProducto = p.NombreProducto,

                                           //  Autor = Autores,
                                           //  GrupoInvestigacion = gruposInvestigacion,
                                           //  AreaConocimiento = NombreArea,

                                             Ambito = p.Ambito,
                                             ProductoTiene = p.ProductoTiene,
                                             RealizadosEvento = p.RealizadosEvento,
                                             Idioma = p.Idioma,
                                             Estado = p.Estado,
                                             Eliminado = p.Eliminado,
                                             FechaRegistro = p.FechaRegistro
                                         });
    y deseo realizar varios group by y que estos estén asignados a un campo en el objeto ProductosConsultaViewModel

    osea que un autor quede en la columna Autor ="carlos munera, diego alvares" etc lo mismo para grupoInvestigacion y para areaConocimiento.

    y se necesita realizar varios group by y que estos estén asignados a un campo en el objeto ProductosConsultaViewModel

    o sea que un autor quede en la columna Autor ="carlos munera, diego alvares" etc lo mismo para grupoInvestigacion y para areaConocimiento.

    como lo planteé me sale error, agradezco cualquier sugerencia a este query
    Y los errores que me Salen es que no me reconoce nombre 'gi', i, gp p does not exist in the current context

                                                                                                                                                                                            
    lunes, 5 de abril de 2021 16:38

Todas las respuestas

  • Hola,

    Gracias por levantar tu consulta en los foros de MSDN.

    Eric Ruiz

    ____________________________

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN siéntase en la libertad de contactar MSDNFSF@microsoft.com.

    lunes, 5 de abril de 2021 17:34
    Moderador