none
Error de conversión al tipo de valor 'Int32' porque el valor materializado es NULL RRS feed

  • Pregunta

  • BUENOS DIAS

    Tengo la siguiente consulta, la cual me funciona bien para una parte del programa pero en otra parte esta me esta arrojando un error, que es el siguiente:

    "Error de conversión al tipo de valor 'Int32' porque el valor materializado es NULL. El parámetro genérico del tipo de resultado o la consulta deben usar un tipo que admite valores NULL."

    la consulta que hago es esta


    //inicializo

    v3=0;

    ve3 = (from ev in bd.ParticipanteEvento where ev.IdEvento == ie && ev.EscarapelaImpresa==true && ev.PresenteEvento==true select ev.NumImpresionesEscarapela).Sum();


    lo extraño es que para ciertos tipos de evento me funciona y hay uno en especial que me arroja este error.

    obviamente no puedo asignar null a v3 para inicializar, no se como resolverlo por el momento, porque si pongo .count() al final me sale bien pero no es el numero que necesito.

    Les agradezco la ayuda

    viernes, 19 de diciembre de 2014 15:13

Respuestas

  • >>obviamente no puedo asignar null a v3 para inicializar,

    si lo defines como

    int? v3 = null;

    podrias asignar nulo, pero veras alli que uso el "?" para indicar que esa variable es nulable

    lo que no veo es donde usas ese "v3" en el linq

    ---

    que pasa si usas

    var ve3 = from ev in bd.ParticipanteEvento 
                where ev.IdEvento == ie && ev.EscarapelaImpresa==true && ev.PresenteEvento==true
                select ev.NumImpresionesEscarapela;

    if(ve3.Count() > 0){
            int suma = ve3.Sum();
    }


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta GatoAcosta viernes, 19 de diciembre de 2014 16:08
    viernes, 19 de diciembre de 2014 15:24

Todas las respuestas

  • >>obviamente no puedo asignar null a v3 para inicializar,

    si lo defines como

    int? v3 = null;

    podrias asignar nulo, pero veras alli que uso el "?" para indicar que esa variable es nulable

    lo que no veo es donde usas ese "v3" en el linq

    ---

    que pasa si usas

    var ve3 = from ev in bd.ParticipanteEvento 
                where ev.IdEvento == ie && ev.EscarapelaImpresa==true && ev.PresenteEvento==true
                select ev.NumImpresionesEscarapela;

    if(ve3.Count() > 0){
            int suma = ve3.Sum();
    }


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta GatoAcosta viernes, 19 de diciembre de 2014 16:08
    viernes, 19 de diciembre de 2014 15:24
  • FULL RESPUESTA....ACLARO QUE CON EL INT?V3 NO FUNCIONA PORQUE NO ESTA DENTRO DE LA CONSULTA SI NO QUE ES LA VARIABLE QUE RECIBE EL RESULTADO, PERO TU RECOMENDACION FUE ACERTADA QUE PENA MOLESTAR CON ESTA TRIVIALIDAD, PERO APENAS ME INICIO EN MVC, NO CONOZCO MUCHAS REGLAS. MUCHAS GRACIAS
    viernes, 19 de diciembre de 2014 16:10