ServiceStack OrmlLite Получить скалярный вывод из хранимой процедуры - PullRequest
0 голосов
/ 05 июня 2018

Как я могу получить скалярный вывод из хранимой процедуры?Когда я выполняю приведенный ниже оператор, он возвращает DBNull.

Мы используем ServiceStack.OrmLite 4.5.8

var le = db.<<SP Name>>(param1, param2)
                .TryGetParameterValue("output_id", out object val);

Шаблон OrmLite T4 сгенерировал следующий код:

public static OrmLiteSPStatement SPName(this IDbConnection db, string @Param1 = null, string @Param2 = null, @Output_id = null)
{
    var dbCmd = (DbCommand)OrmLiteConfig.ExecFilter.CreateCommand(db).ToDbCommand();
    dbCmd.CommandText = "SP NAME";
    dbCmd.CommandType = CommandType.StoredProcedure;
    dbCmd.Parameters.Add(CreateNewParameter(dbCmd,"Param1",@param1,ParameterDirection.Input,DbType.AnsiString));
    dbCmd.Parameters.Add(CreateNewParameter(dbCmd,"Param2",@param2,ParameterDirection.Input,DbType.AnsiString));        
    dbCmd.Parameters.Add(CreateNewParameter(dbCmd,"Output_id",@output_id,ParameterDirection.InputOutput,DbType.Int32));
    dbCmd.Parameters.Add(CreateNewParameter(dbCmd,"__ReturnValue",0,ParameterDirection.ReturnValue,DbType.Int32));
    return new OrmLiteSPStatement(db, dbCmd);
}

Спасибо, rudrvij

1 Ответ

0 голосов
/ 07 июня 2018
var result = db.Scalar<int>("EXEC [SP Name] @param1, @param2", new { param1 = "value1", param2 = "value2" });
...