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.