Uma maneira de fazer isso é chamar
ExecuteStoreCommand
, e passe um SqlParameter com uma direção de 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;
Originalmente eu tentei usar uma direção de
ReturnValue :retval.Direction = ParameterDirection.ReturnValue;
context.ExecuteStoreCommand("MyProc @dtparm", retval, dtparm);
mas
retval.Value sempre seria 0 . Percebi que retval foi o resultado da execução do MyProc @dtparm declaração, então eu mudei para capturar o valor de retorno de MyProc e retorne isso como um parâmetro de saída.