с использованием MVC 5, EF6 и c #
У меня есть хранимая процедура, которая принимает входные данные и возвращает значение 1. (Упрощенно для примера). Странная часть заключается в том, что когда я пытаюсь объявить возвращаемое значение как значение ParameterDirection.Return, я получаю ошибку
Должен объявлять скалярную переменную @ ReturnVal
Если я переключу SQLParameterDirection на OutPut, он будет работать нормально. Я просто пытаюсь понять, почему я не могу использовать ParameterDirection.ReturnValue?
Вот код.
SP:
[dbo].TestProc ( @UserId int)
AS
BEGIN
return 1
end
И код вызова c #.
public async Task<ActionResult> DoStuff()
{
using (var _context = new Model1())
{
SqlParameter sqlUserId = new SqlParameter("@UserId", 1) ;
SqlParameter returnVal = new SqlParameter("@ReturnVal", SqlDbType.Int)
{
Direction = ParameterDirection.ReturnValue
};
await _context.Database.ExecuteSqlCommandAsync("exec @ReturnVal= [TestProc ] @UserId", returnVal, sqlUserId);
var result = (int)returnVal.Value; // Return Correct Value.
}
return View();
}