Един от начините да го направите е да извикате 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 и го връща като изходен параметър.