private IDbDataParameter SetDataParameterType(In parIn, bool isBulk, IDbDataParameter par) { var value = parIn.Value; if (isBulk) { var collParam = value as ICollection; if (collParam != null && collParam.Count != 0) { var enumerator = collParam.GetEnumerator(); while (enumerator.MoveNext()) { if ((value = enumerator.Current) != null) { break; } } } } if (value == null) { value = ""; } par.DbType = GenericDbTypeMap.GetDbType(value.GetType()); if (par.DbType == DbType.Binary) { ReflectionCache.PropParameterDbType.SetValue(par, ReflectionCache.DbTypeBlob, null); } return(par); }
private DbParameter SetDataParameterType(In parIn, bool isBulk, DbParameter par) { var value = parIn.Value; if (isBulk) { if (value is ICollection collParam && collParam.Count != 0) { var enumerator = collParam.GetEnumerator(); while (enumerator.MoveNext()) { if ((value = enumerator.Current) != null) { break; } } } } if (value == null) { value = ""; } if (parIn.DbType.HasValue) { par.DbType = parIn.DbType.Value; return(par); } var type = GenericDbTypeMap.GetDbType(value.GetType()); if (type == DbType.Boolean) { type = DbType.Int32; par.Value = (bool)value ? 1 : 0; } else if (type == DbType.Date) { ReflectionCache.PropParameterDbType.SetValue(par, ReflectionCache.DbTypeDate, null); } else if (type == DbType.Binary) { ReflectionCache.PropParameterDbType.SetValue(par, ReflectionCache.DbTypeBlob, null); } par.DbType = type; return(par); }