none
Stored procedure y parámetro que puede ser nulo RRS feed

  • Pregunta

  • Hola,

    sigo con mi incursión en el mundillo de EF y siguen saliendo problemas. A ver si por favor me pueden ayudar con este.

    En mi modelo tengo un stored procedure de sql server que recibe 3 parámetros, uno de ellos puede ser nulo, lo gestiono de la manera clásica:

    AND (C.CO_CAT = @CodCat OR @CodCat IS NULL)

    Este procedimiento devuelve un resultado de dos campos, un entero y un decimal que quiero almacenar en un objeto Dictionary. El SP lo tengo "mapeado" en mi modelo de entidades de EF como una "Importación de función".

    Para recuperar los datos tengo el siguiente método:

    public Dictionary<int, Decimal> Get_ListaCatalogos(DateTime fecha, String codProv, String? codCat)
    {
       Dictionary<int, Decimal> result = null;
    
       using (Myentities myContext = new MyEntities())
       {
          result = from x in myContext.sp_GetListaCat(fecha, codProv, codCat)
          select x;
       }
       return result;
    }

    Esta definición ya me da error, ya que por algún motivo el mapeo que me hace EF no tiene el valor Nullable en el parámetro codCat. Me dice que la mejor coincidencia del método tiene algunos argumentos no válidos. Si quito el '?' del tipo del parámetro ya no me marca ningún error.

    Yo este método lo quiero llamar, por ejemplo así: Dictionary<int, Decimal> lista = Get_ListaCatalogos(valorFecha, valorProv, null);

    ¿Cómo se gestiona el envío de valores nulos como parámetros?

    viernes, 19 de diciembre de 2014 12:10

Respuestas