public static void SetOracleParameters(IDbDataParameter parameter, OracleDynamicParameters.OracleParameterInfo oracleParameterInfo) { if (parameter == null) { throw new ArgumentNullException(nameof(parameter)); } var method = CachedOracleTypes.GetOrAdd(parameter.GetType(), GetOracleProperties); if (oracleParameterInfo.DbType.HasValue) { method.OraDbType.SetValue(parameter, oracleParameterInfo.DbType.Value); } if (oracleParameterInfo.IsNullable.HasValue) { method.IsNullable.SetValue(parameter, oracleParameterInfo.IsNullable.Value); } if (oracleParameterInfo.Scale.HasValue) { parameter.Scale = oracleParameterInfo.Scale.Value; } if (oracleParameterInfo.Precision.HasValue) { parameter.Precision = oracleParameterInfo.Precision.Value; } parameter.SourceVersion = oracleParameterInfo.SourceVersion; if (oracleParameterInfo.SourceColumn != null) { parameter.SourceColumn = oracleParameterInfo.SourceColumn; } if (oracleParameterInfo.CollectionType != OracleMappingCollectionType.None) { method.CollectionType.SetValue(parameter, oracleParameterInfo.CollectionType); } if (oracleParameterInfo.ArrayBindSize != null) { method.ArrayBindSize.SetValue(parameter, oracleParameterInfo.ArrayBindSize); } }
internal static OracleDynamicParameters.OracleParameterInfo GetParameterInfo(IDbDataParameter parameter) { var method = GetOracleProperties(parameter.GetType()); var paramInfo = new OracleDynamicParameters.OracleParameterInfo(); paramInfo.Name = parameter.ParameterName; paramInfo.SourceVersion = parameter.SourceVersion; paramInfo.Precision = parameter.Precision; paramInfo.Size = parameter.Size; paramInfo.DbType = method.OraDbType.GetValue(parameter); paramInfo.ArrayBindSize = method.ArrayBindSize.GetValue(parameter); paramInfo.CollectionType = method.CollectionType.GetValue(parameter); paramInfo.ParameterDirection = parameter.Direction; paramInfo.IsNullable = parameter.IsNullable; paramInfo.Scale = parameter.Scale; paramInfo.SourceColumn = parameter.SourceColumn; paramInfo.Status = method.Status.GetValue(parameter); paramInfo.Value = parameter.Value; return(paramInfo); }