@@ -20,8 +20,8 @@ private TypeMapper()
20
20
21
21
// boolean
22
22
var typeBoolean = AddDbTypeMapping ( new DbTypeMapping ( typeof ( bool ) , new [ ] { DbType . Boolean } , convert : o => Convert . ToBoolean ( o ) ) ) ;
23
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "TINYINT" , typeBoolean , MySqlDbType . Bool , unsigned : false , length : 1 , simpleDataTypeName : "BOOL" ) ) ;
24
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "TINYINT" , typeBoolean , MySqlDbType . Bool , unsigned : true , length : 1 ) ) ;
23
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "TINYINT" , typeBoolean , MySqlDbType . Bool , isUnsigned : false , length : 1 , columnSize : 1 , simpleDataTypeName : "BOOL" , createFormat : "BOOL" ) ) ;
24
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "TINYINT" , typeBoolean , MySqlDbType . Bool , isUnsigned : true , length : 1 ) ) ;
25
25
26
26
// integers
27
27
var typeSbyte = AddDbTypeMapping ( new DbTypeMapping ( typeof ( sbyte ) , new [ ] { DbType . SByte } , convert : o => Convert . ToSByte ( o ) ) ) ;
@@ -32,49 +32,49 @@ private TypeMapper()
32
32
var typeUint = AddDbTypeMapping ( new DbTypeMapping ( typeof ( uint ) , new [ ] { DbType . UInt32 } , convert : o => Convert . ToUInt32 ( o ) ) ) ;
33
33
var typeLong = AddDbTypeMapping ( new DbTypeMapping ( typeof ( long ) , new [ ] { DbType . Int64 } , convert : o => Convert . ToInt64 ( o ) ) ) ;
34
34
var typeUlong = AddDbTypeMapping ( new DbTypeMapping ( typeof ( ulong ) , new [ ] { DbType . UInt64 } , convert : o => Convert . ToUInt64 ( o ) ) ) ;
35
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "TINYINT" , typeSbyte , MySqlDbType . Byte , unsigned : false ) ) ;
36
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "TINYINT" , typeByte , MySqlDbType . UByte , unsigned : true ) ) ;
37
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "SMALLINT" , typeShort , MySqlDbType . Int16 , unsigned : false ) ) ;
38
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "SMALLINT" , typeUshort , MySqlDbType . UInt16 , unsigned : true ) ) ;
39
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "INT" , typeInt , MySqlDbType . Int32 , unsigned : false ) ) ;
40
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "INT" , typeUint , MySqlDbType . UInt32 , unsigned : true ) ) ;
41
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "MEDIUMINT" , typeInt , MySqlDbType . Int24 , unsigned : false ) ) ;
42
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "MEDIUMINT" , typeUint , MySqlDbType . UInt24 , unsigned : true ) ) ;
43
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "BIGINT" , typeLong , MySqlDbType . Int64 , unsigned : false ) ) ;
44
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "BIGINT" , typeUlong , MySqlDbType . UInt64 , unsigned : true ) ) ;
35
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "TINYINT" , typeSbyte , MySqlDbType . Byte , isUnsigned : false ) ) ;
36
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "TINYINT" , typeByte , MySqlDbType . UByte , isUnsigned : true ) ) ;
37
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "SMALLINT" , typeShort , MySqlDbType . Int16 , isUnsigned : false ) ) ;
38
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "SMALLINT" , typeUshort , MySqlDbType . UInt16 , isUnsigned : true ) ) ;
39
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "INT" , typeInt , MySqlDbType . Int32 , isUnsigned : false ) ) ;
40
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "INT" , typeUint , MySqlDbType . UInt32 , isUnsigned : true ) ) ;
41
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "MEDIUMINT" , typeInt , MySqlDbType . Int24 , isUnsigned : false ) ) ;
42
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "MEDIUMINT" , typeUint , MySqlDbType . UInt24 , isUnsigned : true ) ) ;
43
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "BIGINT" , typeLong , MySqlDbType . Int64 , isUnsigned : false ) ) ;
44
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "BIGINT" , typeUlong , MySqlDbType . UInt64 , isUnsigned : true ) ) ;
45
45
AddColumnTypeMetadata ( new ColumnTypeMetadata ( "BIT" , typeUlong , MySqlDbType . Bit ) ) ;
46
46
47
47
// decimals
48
48
var typeDecimal = AddDbTypeMapping ( new DbTypeMapping ( typeof ( decimal ) , new [ ] { DbType . Decimal , DbType . Currency , DbType . VarNumeric } , convert : o => Convert . ToDecimal ( o ) ) ) ;
49
49
var typeDouble = AddDbTypeMapping ( new DbTypeMapping ( typeof ( double ) , new [ ] { DbType . Double } , convert : o => Convert . ToDouble ( o ) ) ) ;
50
50
var typeFloat = AddDbTypeMapping ( new DbTypeMapping ( typeof ( float ) , new [ ] { DbType . Single } , convert : o => Convert . ToSingle ( o ) ) ) ;
51
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "DECIMAL" , typeDecimal , MySqlDbType . NewDecimal ) ) ;
51
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "DECIMAL" , typeDecimal , MySqlDbType . NewDecimal , createFormat : "DECIMAL({0},{1});precision,scale" ) ) ;
52
52
AddColumnTypeMetadata ( new ColumnTypeMetadata ( "DECIMAL" , typeDecimal , MySqlDbType . Decimal ) ) ;
53
53
AddColumnTypeMetadata ( new ColumnTypeMetadata ( "DOUBLE" , typeDouble , MySqlDbType . Double ) ) ;
54
54
AddColumnTypeMetadata ( new ColumnTypeMetadata ( "FLOAT" , typeFloat , MySqlDbType . Float ) ) ;
55
55
56
56
// string
57
57
var typeFixedString = AddDbTypeMapping ( new DbTypeMapping ( typeof ( string ) , new [ ] { DbType . StringFixedLength , DbType . AnsiStringFixedLength } , convert : Convert . ToString ) ) ;
58
58
var typeString = AddDbTypeMapping ( new DbTypeMapping ( typeof ( string ) , new [ ] { DbType . String , DbType . AnsiString , DbType . Xml } , convert : Convert . ToString ) ) ;
59
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "CHAR" , typeFixedString , MySqlDbType . String ) ) ;
60
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "VARCHAR" , typeString , MySqlDbType . VarChar ) ) ;
59
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "VARCHAR" , typeString , MySqlDbType . VarChar , createFormat : "VARCHAR({0});size" ) ) ;
61
60
AddColumnTypeMetadata ( new ColumnTypeMetadata ( "VARCHAR" , typeString , MySqlDbType . VarString ) ) ;
62
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "TINYTEXT" , typeString , MySqlDbType . TinyText , simpleDataTypeName : "VARCHAR" ) ) ;
63
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "TEXT" , typeString , MySqlDbType . Text , simpleDataTypeName : "VARCHAR" ) ) ;
64
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "MEDIUMTEXT" , typeString , MySqlDbType . MediumText , simpleDataTypeName : "VARCHAR" ) ) ;
65
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "LONGTEXT" , typeString , MySqlDbType . LongText , simpleDataTypeName : "VARCHAR" ) ) ;
61
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "CHAR" , typeFixedString , MySqlDbType . String , createFormat : "CHAR({0});size" ) ) ;
62
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "TINYTEXT" , typeString , MySqlDbType . TinyText , columnSize : byte . MaxValue , simpleDataTypeName : "VARCHAR" ) ) ;
63
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "TEXT" , typeString , MySqlDbType . Text , columnSize : ushort . MaxValue , simpleDataTypeName : "VARCHAR" ) ) ;
64
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "MEDIUMTEXT" , typeString , MySqlDbType . MediumText , columnSize : 16777215 , simpleDataTypeName : "VARCHAR" ) ) ;
65
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "LONGTEXT" , typeString , MySqlDbType . LongText , columnSize : uint . MaxValue , simpleDataTypeName : "VARCHAR" ) ) ;
66
66
AddColumnTypeMetadata ( new ColumnTypeMetadata ( "ENUM" , typeString , MySqlDbType . Enum ) ) ;
67
67
AddColumnTypeMetadata ( new ColumnTypeMetadata ( "SET" , typeString , MySqlDbType . Set ) ) ;
68
68
AddColumnTypeMetadata ( new ColumnTypeMetadata ( "JSON" , typeString , MySqlDbType . JSON ) ) ;
69
69
70
70
// binary
71
71
var typeBinary = AddDbTypeMapping ( new DbTypeMapping ( typeof ( byte [ ] ) , new [ ] { DbType . Binary } ) ) ;
72
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "BLOB" , typeBinary , MySqlDbType . Blob , binary : true , simpleDataTypeName : "BLOB" ) ) ;
73
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "BINARY" , typeBinary , MySqlDbType . Binary , binary : true , simpleDataTypeName : "BLOB" ) ) ;
74
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "VARBINARY" , typeBinary , MySqlDbType . VarBinary , binary : true , simpleDataTypeName : "BLOB" ) ) ;
75
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "TINYBLOB" , typeBinary , MySqlDbType . TinyBlob , binary : true , simpleDataTypeName : "BLOB" ) ) ;
76
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "MEDIUMBLOB" , typeBinary , MySqlDbType . MediumBlob , binary : true , simpleDataTypeName : "BLOB" ) ) ;
77
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "LONGBLOB" , typeBinary , MySqlDbType . LongBlob , binary : true , simpleDataTypeName : "BLOB" ) ) ;
72
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "BLOB" , typeBinary , MySqlDbType . Blob , binary : true , columnSize : ushort . MaxValue , simpleDataTypeName : "BLOB" ) ) ;
73
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "BINARY" , typeBinary , MySqlDbType . Binary , binary : true , simpleDataTypeName : "BLOB" , createFormat : "BINARY({0});length" ) ) ;
74
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "VARBINARY" , typeBinary , MySqlDbType . VarBinary , binary : true , simpleDataTypeName : "BLOB" , createFormat : "VARBINARY({0});length" ) ) ;
75
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "TINYBLOB" , typeBinary , MySqlDbType . TinyBlob , binary : true , columnSize : byte . MaxValue , simpleDataTypeName : "BLOB" ) ) ;
76
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "MEDIUMBLOB" , typeBinary , MySqlDbType . MediumBlob , binary : true , columnSize : 16777215 , simpleDataTypeName : "BLOB" ) ) ;
77
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "LONGBLOB" , typeBinary , MySqlDbType . LongBlob , binary : true , columnSize : uint . MaxValue , simpleDataTypeName : "BLOB" ) ) ;
78
78
79
79
// spatial
80
80
AddColumnTypeMetadata ( new ColumnTypeMetadata ( "GEOMETRY" , typeBinary , MySqlDbType . Geometry , binary : true ) ) ;
@@ -99,7 +99,7 @@ private TypeMapper()
99
99
100
100
// guid
101
101
var typeGuid = AddDbTypeMapping ( new DbTypeMapping ( typeof ( Guid ) , new [ ] { DbType . Guid } , convert : o => Guid . Parse ( Convert . ToString ( o ) ) ) ) ;
102
- AddColumnTypeMetadata ( new ColumnTypeMetadata ( "CHAR" , typeGuid , MySqlDbType . Guid , length : 36 , simpleDataTypeName : "CHAR(36)" ) ) ;
102
+ AddColumnTypeMetadata ( new ColumnTypeMetadata ( "CHAR" , typeGuid , MySqlDbType . Guid , length : 36 , simpleDataTypeName : "CHAR(36)" , createFormat : "CHAR(36)" ) ) ;
103
103
104
104
// null
105
105
var typeNull = AddDbTypeMapping ( new DbTypeMapping ( typeof ( object ) , new [ ] { DbType . Object } , convert : o => null ) ) ;
0 commit comments