Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Abrufen eines Ergebnisfeedbacks von einer gespeicherten Prozedur in Entity Framework

Eine Möglichkeit besteht darin, ExecuteStoreCommand , und übergeben Sie einen SqlParameter mit der Richtung Ausgabe :

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;

Ursprünglich habe ich versucht, eine Richtung von ReturnValue zu verwenden :

retval.Direction = ParameterDirection.ReturnValue;

context.ExecuteStoreCommand("MyProc @dtparm", retval, dtparm);

sondern retval.Value wäre immer 0 . Mir ist klar geworden, dass retval war das Ergebnis der Ausführung von MyProc @dtparm -Anweisung, also habe ich sie geändert, um den Rückgabewert von MyProc zu erfassen und das als Ausgabeparameter zurückgeben.