Един от начините да го направите е да извикате ExecuteStoreCommand
и подайте SqlParameter
с посока 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;
Първоначално се опитах да използвам посока на ReturnValue
:
retval.Direction = ParameterDirection.ReturnValue;
context.ExecuteStoreCommand("MyProc @dtparm", retval, dtparm);
но retval.Value
винаги ще бъде 0
. Разбрах, че retval
беше резултат от изпълнението на MyProc @dtparm
оператор, така че го промених, за да улови върнатата стойност на MyProc
и го връща като изходен параметър.