/// <summary> /// Sets a parameter value. /// </summary> /// <param name="command">The command with the parameter.</param> /// <param name="parameterName">The parameter name.</param> /// <param name="value">The parameter value.</param> public override void SetParameterValue(DbCommand command, string parameterName, object value) { if (command == null) { throw new ArgumentNullException("command"); } object convertedValue = value; ParameterTypeRegistry registry = GetParameterTypeRegistry(command.CommandText); if (registry != null) { if (registry.HasRegisteredParameterType(parameterName)) { DbType dbType = registry.GetRegisteredParameterType(parameterName); if (DbType.Guid == dbType) { convertedValue = ConvertGuidToByteArray(value); } } } base.SetParameterValue(command, parameterName, convertedValue); }
/// <summary> /// Gets a parameter value. /// </summary> /// <param name="command">The command that contains the parameter.</param> /// <param name="parameterName">The name of the parameter.</param> /// <returns>The value of the parameter.</returns> public override object GetParameterValue(DbCommand command, string parameterName) { if (command == null) { throw new ArgumentNullException("command"); } object convertedValue = base.GetParameterValue(command, parameterName); ParameterTypeRegistry registry = GetParameterTypeRegistry(command.CommandText); if (registry != null) { if (registry.HasRegisteredParameterType(parameterName)) { DbType dbType = registry.GetRegisteredParameterType(parameterName); if (DbType.Guid == dbType) { convertedValue = ConvertByteArrayToGuid(convertedValue); } else if (DbType.Boolean == dbType) { convertedValue = Convert.ToBoolean(convertedValue, CultureInfo.InvariantCulture); } } } return(convertedValue); }
private void RegisterParameterType(DbCommand command, string parameterName, DbType dbType) { ParameterTypeRegistry registry = GetParameterTypeRegistry(command.CommandText); if (registry == null) { registry = new ParameterTypeRegistry(command.CommandText); registeredParameterTypes.Add(command.CommandText, registry); } registry.RegisterParameterType(parameterName, dbType); }