none
Columna suma de una tabla llamada Visitas dentro del Domain services class (Clase de servicio de dominio) RRS feed

  • Pregunta

  •         public IEnumerable<Visitas> GetNroVisitasGral()
            {
                var Total = (from v in ObjectContext.Visitas
                                        where v.cod_por == 1
                                        where v.cod_cat == 0
                                        where v.cod_scat == 0
                                        where v.cod_pro == 0
                                        select v.Hits).Sum();
                var SumaTotal = Total;
    //Aqui me sale error en la variable SumaTotal
                return SumaTotal;
            }
    martes, 19 de julio de 2011 14:06

Respuestas

  • Hola

    La consulta te está devolviendo un sólo valor puesto que realizas el Sum() de la columna v.Hits por lo tanto tu método no devuelve un IEnumerable<Visitas> sino un int o un float o double dependiendo de los valores que tienes en esa columna, por tal razón cambia el tipo de valor retornado public IEnumerable<Visitas> GetNroVisitasGral() por public int/double/float GetNroVisitasGral(). 

    Edit: la consulta actual como la tienes puede regresar un int? o sea que puede ser nulo, por lo cual te aconsejo que cambies el tipo de consulta para que no pase eso, de pronto validando que v.Hits tenga un valor.

    Saludos


    Antonio Lobo
    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

    martes, 19 de julio de 2011 14:25

Todas las respuestas

  • Pregunta sobre el problema,

    1. necesito saber si esta clase va dentro de la clase domain service??,

    2. Me sale un error al retornar la variable SumaTotal, y el mensaje que sale es "No se puede convertir implicitamente el tipo 'int?' en System.Collections.Generic.IEnumerable<WCFGRCZEE.Web.grcbdmodelo.Visitas>"

     

    martes, 19 de julio de 2011 14:18
  • Hola

    La consulta te está devolviendo un sólo valor puesto que realizas el Sum() de la columna v.Hits por lo tanto tu método no devuelve un IEnumerable<Visitas> sino un int o un float o double dependiendo de los valores que tienes en esa columna, por tal razón cambia el tipo de valor retornado public IEnumerable<Visitas> GetNroVisitasGral() por public int/double/float GetNroVisitasGral(). 

    Edit: la consulta actual como la tienes puede regresar un int? o sea que puede ser nulo, por lo cual te aconsejo que cambies el tipo de consulta para que no pase eso, de pronto validando que v.Hits tenga un valor.

    Saludos


    Antonio Lobo
    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

    martes, 19 de julio de 2011 14:25
  • Hola Antonio, primero quiero agracerte por la respuesta inmediata. Te cuento que he cambiado la clase  como me dijiste por esta:

     

            public int GetNroVisitasGral()

            { 

                int Total = (from v in ObjectContext.Visitas

                                        where v.cod_por == 1

                                        where v.cod_cat == 0

                                        where v.cod_scat == 0

                                        where v.cod_pro == 0

                                        select v.Hits).Sum().Value;

                 return Total;

             }

     

    Bueno aqui no me sale ningun error como aprecio, voy a probarlo como me muesta en la aplicacion.

     

    muchas gracias

    martes, 19 de julio de 2011 20:06