Một cách để thực hiện là gọi ExecuteStoreCommand
và chuyển vào SqlParameter
với hướng 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;
Ban đầu, tôi đã thử sử dụng hướng ReturnValue
:
retval.Direction = ParameterDirection.ReturnValue;
context.ExecuteStoreCommand("MyProc @dtparm", retval, dtparm);
nhưng retval.Value
sẽ luôn là 0
. Tôi nhận ra rằng retval
là kết quả của việc thực thi MyProc @dtparm
, vì vậy tôi đã thay đổi nó để nắm bắt giá trị trả về của MyProc
và trả về nó dưới dạng tham số đầu ra.