sql >> Databáze >  >> RDS >> Oracle

Použití Dapper s uloženými procedurami Oracle, které vracejí kurzory

Děkuji za řešení zde. Dosáhl jsem stejné věci s o něco menším množstvím kódu pomocí jednoduchého dekorátoru DynamicParameter:

public class OracleDynamicParameters : SqlMapper.IDynamicParameters
{
    private readonly DynamicParameters dynamicParameters = new DynamicParameters();

    private readonly List<OracleParameter> oracleParameters = new List<OracleParameter>();

    public void Add(string name, object value = null, DbType? dbType = null, ParameterDirection? direction = null, int? size = null)
    {
        dynamicParameters.Add(name, value, dbType, direction, size);
    }

    public void Add(string name, OracleDbType oracleDbType, ParameterDirection direction)
    {
        var oracleParameter = new OracleParameter(name, oracleDbType, direction);
        oracleParameters.Add(oracleParameter);
    }

    public void AddParameters(IDbCommand command, SqlMapper.Identity identity)
    {
        ((SqlMapper.IDynamicParameters)dynamicParameters).AddParameters(command, identity);

        var oracleCommand = command as OracleCommand;

        if (oracleCommand != null)
        {
            oracleCommand.Parameters.AddRange(oracleParameters.ToArray());
        }
    }
}


  1. Vložit blob do databáze Oracle pomocí C#

  2. Klíčové indikátory problémového designu

  3. Analytics s MariaDB AX – tThe Open Source Columnar Datastore

  4. Vytvořte pohled s klauzulí ORDER BY