public DefaultSqlDataTypeProvider(ConstraintDefaultsConfiguration constraintDefaultsConfiguration)
: base(constraintDefaultsConfiguration)
{
this.sqlDataTypesByType = new Dictionary<Type, SqlDataType>();
this.DefineSqlDataType(typeof(bool), "TINYINT", "GetBoolean");
this.DefineSqlDataType(typeof(byte), "BYTE UNSIGNED ", "GetByte");
this.DefineSqlDataType(typeof(sbyte), "BYTE", "GetByte");
this.DefineSqlDataType(typeof(char), "CHAR", "GetChar");
this.DefineSqlDataType(typeof(int), "INT", "GetInt32");
this.DefineSqlDataType(typeof(uint), "INT UNSIGNED ", "GetUInt32");
this.DefineSqlDataType(typeof(short), "SMALLINT", "GetInt16");
this.DefineSqlDataType(typeof(ushort), "SMALLINT UNSIGNED ", "GetUInt16");
this.DefineSqlDataType(typeof(long), "BIGINT", "GetInt64");
this.DefineSqlDataType(typeof(ulong), "BIGINT UNSIGNED", "GetUInt64");
this.DefineSqlDataType(typeof(DateTime), "DATETIME", "GetDateTime");
this.DefineSqlDataType(typeof(float), "FLOAT", "GetFloat");
this.DefineSqlDataType(typeof(double), "DOUBLE", "GetDouble");
this.DefineSqlDataType(typeof(decimal), "NUMERIC", "GetDecimal");
this.DefineSqlDataType(new DefaultGuidSqlDataType(this.ConstraintDefaultsConfiguration, typeof(Guid)));
this.DefineSqlDataType(new DefaultGuidSqlDataType(this.ConstraintDefaultsConfiguration, typeof(Guid?)));
this.DefineSqlDataType(new DefaultTimeSpanSqlDataType(this, this.ConstraintDefaultsConfiguration, typeof(TimeSpan)));
this.DefineSqlDataType(new DefaultTimeSpanSqlDataType(this, this.ConstraintDefaultsConfiguration, typeof(TimeSpan?)));
this.DefineSqlDataType(new DefaultStringSqlDataType(this.ConstraintDefaultsConfiguration));
}