protected override IDbCommand CreateCommand(IDbHelper db, IMappingProvider mappingProvider, object commandType, IDictionary <string, object> values) { IStatement statement = mappingProvider.GetStatement(commandType); StringBuilder sb = new StringBuilder(); IDbCommand dbCommand = db.Connection.CreateCommand(); dbCommand.CommandText = statement.CommandText; dbCommand.CommandType = statement.CommandType; foreach (KeyValuePair <string, IParameter> kv in statement.Parameters) { object peropertyValue = values[kv.Key]; OracleParameter parameter = (OracleParameter)kv.Value; global::Oracle.ManagedDataAccess.Client.OracleParameter dataParameter = null; if (parameter.IsCursor) { dataParameter = new global::Oracle.ManagedDataAccess.Client.OracleParameter(); dataParameter.ParameterName = parameter.ParameterName; dataParameter.OracleDbType = OracleDbType.RefCursor; CreateParameter(parameter.ParameterName, peropertyValue, parameter.PropertyType, parameter.Size); } else { dataParameter = (global::Oracle.ManagedDataAccess.Client.OracleParameter)CreateParameter(parameter.ParameterName, peropertyValue, parameter.PropertyType, parameter.Size); } dataParameter.Direction = parameter.Direction; dbCommand.Parameters.Add(dataParameter); } return(dbCommand); }
protected virtual IDbCommand CreateCommand(IDbHelper session, IMappingProvider mappingProvider, object commandType, IDictionary <string, object> values) { IStatement statement = mappingProvider.GetStatement(commandType); IDbCommand dbCommand = session.Connection.CreateCommand(); dbCommand.CommandText = statement.CommandText; dbCommand.CommandType = statement.CommandType; foreach (KeyValuePair <string, IParameter> kv in statement.Parameters) { object peropertyValue = values[kv.Key]; IParameter parameter = kv.Value; IDataParameter dataParameter = CreateParameter(parameter.ParameterName, peropertyValue, parameter.PropertyType, parameter.Size); dataParameter.Direction = parameter.Direction; dbCommand.Parameters.Add(dataParameter); } return(dbCommand); }
public virtual int ExecuteNonQuery(IDbHelper db, IMappingProvider mappingProvider, object commandType, IDictionary <string, object> values) { IStatement statement = mappingProvider.GetStatement(commandType); IDbCommand dbCommand = CreateCommand(db, mappingProvider, commandType, values); int returnCount = db.ExecuteNonQuery(dbCommand); foreach (KeyValuePair <string, IParameter> kv in statement.OutParameters) { IParameter parameter = kv.Value; IDataParameter dataParameter = (IDataParameter)dbCommand.Parameters[parameter.ParameterName]; object value = ConvertDbValue(dataParameter.Value, parameter.PropertyType); if (values.ContainsKey(kv.Key)) { values[kv.Key] = value; } else { values.Add(kv.Key, value); } } return(returnCount); }