Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Ottenere un feedback sui risultati da una stored procedure in Entity Framework

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.