Entity Framework Core - Using Stored Procedure with output parameters
It should work, but I believe you also need to include the parameter names and the OUT
keyword in the command statement
var sql = "exec spTestSp @ParamIn1, @ParamIn2, @ParamOut1 OUT, @ParamOut2 OUT";
var result = db.Database.ExecuteSqlCommand(sql, in1, in2, out1, out2);
var out1Value = (long) out1.Value;
var out2Value = (string) out2.Value;
Full example of the solution as described above by @Nkosi and partially by @Whistler for the ease of future readers!
In my example, I was trying to execute a stored procedure existed in my database to get specific path.
string tableName = "DocumentStore";
string path;
var in1 = new SqlParameter
{
ParameterName = "TableName",
Value = tableName,
Size = Int32.MaxValue,
DbType = System.Data.DbType.String,
Direction = System.Data.ParameterDirection.Input
};
var out1 = new SqlParameter
{
ParameterName = "Path",
DbType = System.Data.DbType.String,
Size = Int32.MaxValue,
Direction = System.Data.ParameterDirection.Output
};
//_context is DbContext Object
_context.Database.ExecuteSqlCommand("EXEC GetFileTableRootPath @TableName, @Path OUT", in1,out1);
path = out1.Value.ToString();