// Token: 0x06000034 RID: 52 RVA: 0x00002C88 File Offset: 0x00000E88 public void Add(string name, object value, DbType?dbType, ParameterDirection?direction, int?size) { this.parameters[DynamicParameters.Clean(name)] = new DynamicParameters.ParamInfo { Name = name, Value = value, ParameterDirection = (direction ?? ParameterDirection.Input), DbType = dbType, Size = size }; }
// Token: 0x06000035 RID: 53 RVA: 0x00002CE4 File Offset: 0x00000EE4 public void Add(string name, object value = null, DbType?dbType = null, ParameterDirection?direction = null, int?size = null, byte?precision = null, byte?scale = null) { this.parameters[DynamicParameters.Clean(name)] = new DynamicParameters.ParamInfo { Name = name, Value = value, ParameterDirection = (direction ?? ParameterDirection.Input), DbType = dbType, Size = size, Precision = precision, Scale = scale }; }
// Token: 0x0600003C RID: 60 RVA: 0x000032FC File Offset: 0x000014FC public T Get <T>(string name) { DynamicParameters.ParamInfo paramInfo = this.parameters[DynamicParameters.Clean(name)]; IDbDataParameter attachedParam = paramInfo.AttachedParam; object obj = (attachedParam == null) ? paramInfo.Value : attachedParam.Value; if (obj != DBNull.Value) { return((T)((object)obj)); } if (default(T) != null) { throw new ApplicationException("Attempting to cast a DBNull to a non nullable type! Note that out/return parameters will not have updated values until the data stream completes (after the 'foreach' for Query(..., buffered: false), or after the GridReader has been disposed for QueryMultiple)"); } return(default(T)); }
// Token: 0x0600003A RID: 58 RVA: 0x00002DA0 File Offset: 0x00000FA0 protected void AddParameters(IDbCommand command, SqlMapper.Identity identity) { IList <SqlMapper.LiteralToken> literalTokens = SqlMapper.GetLiteralTokens(identity.sql); if (this.templates != null) { foreach (object obj in this.templates) { SqlMapper.Identity identity2 = identity.ForDynamicParameters(obj.GetType()); Dictionary <SqlMapper.Identity, Action <IDbCommand, object> > obj2 = DynamicParameters.paramReaderCache; Action <IDbCommand, object> action; lock (obj2) { if (!DynamicParameters.paramReaderCache.TryGetValue(identity2, out action)) { action = SqlMapper.CreateParamInfoGenerator(identity2, true, this.RemoveUnused, literalTokens); DynamicParameters.paramReaderCache[identity2] = action; } } action(command, obj); } foreach (object obj3 in command.Parameters) { IDbDataParameter dbDataParameter = (IDbDataParameter)obj3; if (!this.parameters.ContainsKey(dbDataParameter.ParameterName)) { this.parameters.Add(dbDataParameter.ParameterName, new DynamicParameters.ParamInfo { AttachedParam = dbDataParameter, CameFromTemplate = true, DbType = new DbType?(dbDataParameter.DbType), Name = dbDataParameter.ParameterName, ParameterDirection = dbDataParameter.Direction, Size = new int?(dbDataParameter.Size), Value = dbDataParameter.Value }); } } List <Action> list = this.outputCallbacks; if (list != null) { foreach (Action action2 in list) { action2(); } } } foreach (DynamicParameters.ParamInfo paramInfo in this.parameters.Values) { if (!paramInfo.CameFromTemplate) { DbType?dbType = paramInfo.DbType; object value = paramInfo.Value; string text = DynamicParameters.Clean(paramInfo.Name); bool flag2 = value is SqlMapper.ICustomQueryParameter; SqlMapper.ITypeHandler typeHandler = null; if (dbType == null && value != null && !flag2) { dbType = new DbType?(SqlMapper.LookupDbType(value.GetType(), text, true, out typeHandler)); } if (flag2) { ((SqlMapper.ICustomQueryParameter)value).AddParameter(command, text); } else if (dbType == (DbType)(-1)) { SqlMapper.PackListParameters(command, text, value); } else { bool flag3 = !command.Parameters.Contains(text); IDbDataParameter dbDataParameter2; if (flag3) { dbDataParameter2 = command.CreateParameter(); dbDataParameter2.ParameterName = text; } else { dbDataParameter2 = (IDbDataParameter)command.Parameters[text]; } dbDataParameter2.Direction = paramInfo.ParameterDirection; if (typeHandler == null) { dbDataParameter2.Value = SqlMapper.SanitizeParameterValue(value); if (dbType != null && dbDataParameter2.DbType != dbType) { dbDataParameter2.DbType = dbType.Value; } string text2 = value as string; if (text2 != null && text2.Length <= 4000) { dbDataParameter2.Size = 4000; } if (paramInfo.Size != null) { dbDataParameter2.Size = paramInfo.Size.Value; } if (paramInfo.Precision != null) { dbDataParameter2.Precision = paramInfo.Precision.Value; } if (paramInfo.Scale != null) { dbDataParameter2.Scale = paramInfo.Scale.Value; } } else { if (dbType != null) { dbDataParameter2.DbType = dbType.Value; } if (paramInfo.Size != null) { dbDataParameter2.Size = paramInfo.Size.Value; } if (paramInfo.Precision != null) { dbDataParameter2.Precision = paramInfo.Precision.Value; } if (paramInfo.Scale != null) { dbDataParameter2.Scale = paramInfo.Scale.Value; } typeHandler.SetValue(dbDataParameter2, value ?? DBNull.Value); } if (flag3) { command.Parameters.Add(dbDataParameter2); } paramInfo.AttachedParam = dbDataParameter2; } } } if (literalTokens.Count != 0) { SqlMapper.ReplaceLiterals(this, command, literalTokens); } }
public T Get <T>(string name) { return((T)((object)this.parameters[DynamicParameters.Clean(name)].AttachedParam.Value)); }