Une façon de le faire est d'appeler ExecuteStoreCommand
, et passez un SqlParameter
avec une direction 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;
À l'origine, j'ai essayé d'utiliser une direction de ReturnValue
:
retval.Direction = ParameterDirection.ReturnValue;
context.ExecuteStoreCommand("MyProc @dtparm", retval, dtparm);
mais retval.Value
serait toujours 0
. J'ai réalisé que retval
était le résultat de l'exécution de MyProc @dtparm
déclaration, donc je l'ai changé pour capturer la valeur de retour de MyProc
et renvoyez-le comme paramètre de sortie.