Un modo per farlo è chiamare ExecuteStoreCommand
e passa un SqlParameter
con una direzione di 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;
Inizialmente ho provato a usare una direzione di ReturnValue
:
retval.Direction = ParameterDirection.ReturnValue;
context.ExecuteStoreCommand("MyProc @dtparm", retval, dtparm);
ma retval.Value
sarebbe sempre 0
. Mi sono reso conto che retval
era il risultato dell'esecuzione di MyProc @dtparm
istruzione, quindi l'ho modificato per acquisire il valore di ritorno di MyProc
e restituirlo come parametro di output.