none
LINQ - no puedo obtener el resultado de campos que no incluyo en un group new by new RRS feed

  • Pregunta

  • MI PROBLEMA ES QUE NO PUEDO OBTENER O ACCEDER A CAMPOS QUE NO INCLUYO EN EL  BY NEW DEL GROUP Y LOS NECESITO PARA DEVOLVERLOS

    MI CONSULTA LINQ:

    from mayor in mayorDataTable.AsEnumerable()
                                            join baseDeGrano in baseDeGranoDataTable.AsEnumerable()
                                            on new
                                            {
                                                PLANTA = (mayor.IsPLANTANull() == false ? mayor.PLANTA : "-"),
                                                EMPRESA = (mayor.IsEMPRESANull() == false ? mayor.EMPRESA : "-"),
                                                GRANO = (mayor.IsGRANONull() == false ? mayor.GRANO : 0),
                                                ZAFRA = (mayor.IsZAFRANull() == false ? System.Convert.ToDouble(mayor.ZAFRA) : 0)
                                            }
                                            equals new
                                            {
                                                PLANTA = (baseDeGrano.IsRUCPLANTANull() == false ? baseDeGrano.RUCPLANTA : "-"),
                                                EMPRESA = (baseDeGrano.IsRUCEMPRESANull() == false ? baseDeGrano.RUCEMPRESA : "-"),
                                                GRANO = (baseDeGrano.IsIDGRANONull() == false ? baseDeGrano.IDGRANO : 0),
                                                ZAFRA = (baseDeGrano.IsZAFRANull() == false ? baseDeGrano.ZAFRA : 0)
                                            } into mayor_baseDeGrano_join
                                            from mayorBaseDeGrano in mayor_baseDeGrano_join.DefaultIfEmpty(Globales.fisicoDataSet.BASEDEGRANO.NewBASEDEGRANORow())
                                            join secadoACobrar in secadoACobrarDataTable.AsEnumerable()
                                            on new
                                            {
                                                PLANTA = (mayor.IsPLANTANull() == false ? mayor.PLANTA : "-"),
                                                EMPRESA = (mayor.IsEMPRESANull() == false ? mayor.EMPRESA : "-"),
                                                GRANO = (mayor.IsGRANONull() == false ? mayor.GRANO : 0),
                                                ZAFRA = (mayor.IsZAFRANull() == false ? System.Convert.ToInt32(mayor.ZAFRA) : 0)
                                            }
                                            equals new
                                            {
                                                PLANTA = (secadoACobrar.IsRucPlantaNull() == false ? secadoACobrar.RucPlanta : "-"),
                                                EMPRESA = (secadoACobrar.IsRucEmpresaNull() == false ? secadoACobrar.RucEmpresa : "-"),
                                                GRANO = (secadoACobrar.IsNROGRANONull() == false ? System.Convert.ToDouble(secadoACobrar.NROGRANO) : 0),
                                                ZAFRA = (secadoACobrar.IsZAFRANull() == false ? secadoACobrar.ZAFRA : 0)
                                            } into mayor_secadoACobrar_join
                                            from mayorSecadoACobrar in mayor_secadoACobrar_join.DefaultIfEmpty(Globales.fisicoDataSet.SECADOACOBRAR.NewSECADOACOBRARRow())
                                            group new
                                            {
                                                mayor, mayorBaseDeGrano, mayorSecadoACobrar
                                            }
                                            by new
                                            {
                                                mayor.BOLETA, mayor.FECHA
                                            } into g
                                            orderby g.Key.BOLETA, g.Key.FECHA
                                            select new CalculoCostoSecadoACobrar
                                            {
                                                TipoMovimiento = ???,
                                                FECHA = ???,
                                                BOLETA = ???,
                                                PLANTA = ???,
                                                EMPRESA = ???,
                                                DISTRIBUIDOR = ???,
                                                CLIENTE = ???,
                                                GRANO = ???,
                                                PESONETO = ???,
                                                HUMEDAD = ???,
                                                KilosSecosSecado = ???
                                            };

    EL PROBLEMA ES QUE SI AGREGO LOS CAMPOS QUE NECESITO DEVOLVER EN EL BY NEW YA NO ME FUNCIONA LA AGRUPACION, LA CUAL QUIERO SOLO POR BOLETA

    ALGUNA IDEA?

    viernes, 8 de junio de 2012 14:23

Todas las respuestas

  • O SEA...NECESITO DEVOLVER CAMPOS QUE NO INCLUYO EN BY NEW, PORQUE SI LOS INCLUYO PUEDO DEVOLVER SIN PROBLEMA, PERO YA NO ME FUNCIONA EL AGRUPAMIENTO COMO LO QUIERO LOGICAMENTE...

    COMO HAGO PARA DEVOLVER CAMPOS QUE NO INCLUYO EN BY NEW...

    GRACIAS!

    viernes, 8 de junio de 2012 14:25
  • no probaste usar el "g" que defines en el into

    pero ojo deberia ser

    g.First() o alguna otra funcion que devuelva o agrupe los resutados, ya que este g agrupa los items que genero el group by

    boleta o fecha lo obtendras pero para planta podria ser

    PLANTA = g.First().Planta

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 8 de junio de 2012 16:18