Una forma de hacerlo es llamar a ExecuteStoreCommand
y pase un SqlParameter
con una dirección de Output
:
var dtparm = new SqlParameter("@dtparm", DateTime.Now);
var retval = new SqlParameter("@retval", SqlDbType.Int);
retval.Direction = ParameterDirection.Output;
context.ExecuteStoreCommand("exec @retval = MyProc @dtparm", retval, dtparm);
int return_value = (int)retval.Value;
Originalmente intenté usar una dirección de ReturnValue
:
retval.Direction = ParameterDirection.ReturnValue;
context.ExecuteStoreCommand("MyProc @dtparm", retval, dtparm);
pero retval.Value
siempre sería 0
. Me di cuenta de que retval
fue el resultado de ejecutar MyProc @dtparm
declaración, así que la cambié para capturar el valor de retorno de MyProc
y devolver eso como un parámetro de salida.