Jedním ze způsobů, jak to udělat, je zavolat ExecuteStoreCommand
a předejte SqlParameter
se směrem 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;
Původně jsem se snažil použít směr ReturnValue
:
retval.Direction = ParameterDirection.ReturnValue;
context.ExecuteStoreCommand("MyProc @dtparm", retval, dtparm);
ale retval.Value
bude vždy 0
. Uvědomil jsem si, že retval
byl výsledkem spuštění MyProc @dtparm
příkaz, takže jsem jej změnil tak, aby zachycoval návratovou hodnotu MyProc
a vrátit to jako výstupní parametr.