none
Problema al ejecutar un procedimiento de almacenado con GUID RRS feed

  • Pregunta

  • Buenas, estoy haciendo un procedimiento de almacenado que emplea como uno de sus parámetros un campo GUID, el caso es que no se como ponerlo como autogenerado, ya que si pongo esto:
    EntityConnection miConexion = new EntityConnection(conString.ConnectionString); //Ya generada previamente
    
    EntityCommand command = new EntityCommand();
    command.CommandType = System.Data.CommandType.StoredProcedure;
    command.Connection = miConexion;
    command.CommandText = "misEntities.miProcedimiento";
    
    EntityParameter param;
    
    param = new EntityParameter("UserId",DbType.Guid);
    param.Value = Guid.NewGuid();
    param.Direction = ParameterDirection.Input;
    command.Parameters.Add(param);
    
    param = new EntityParameter("UserName",DbType.String);
    param.Value="miUsuario";
    param.Direction = ParameterDirection.Input;
    command.Parameters.Add(param);
    
    miConexion.Open();
    command.ExecuteNonQuery(); //Devuelve -1
    miConexion.Close();
    Devuelve -1, ya que he hecho una inserción antes con el UserName "miUsuario" y UserId = Guid.Empty.

    La Clave Primaria es UserId.

    Intentando insertar el UserId como Guid.NewId() o como Guid.Empty devuelve -1, si intento poner null, da una excepción.

    Se que el procedimiento de almacenado funciona, lo he probado empleando LinqToSql y va sin problemas.

    Alguna sugerencia?

    Un saludo y gracias por a atención.

    Víctor.
    miércoles, 13 de enero de 2010 11:04

Respuestas

  • Buenas, ya solucioné este error y es simplemente generando yo el Guid desde código y cuando hacemos la importación del procedimiento de almacenado, poner como tipo de valor devuelto a ninguno.
    • Marcado como respuesta VictorCampoy viernes, 26 de febrero de 2010 11:31
    viernes, 26 de febrero de 2010 11:31