@@ -19,6 +19,7 @@ private PostgreSQLDialectProvider()
19
19
base . BoolColumnDefinition = "boolean" ;
20
20
base . TimeColumnDefinition = "time" ;
21
21
base . DateTimeColumnDefinition = "timestamp" ;
22
+ base . DateTimeOffsetColumnDefinition = "timestamp" ;
22
23
base . DecimalColumnDefinition = "numeric(38,6)" ;
23
24
base . GuidColumnDefinition = "uuid" ;
24
25
base . ParamString = ":" ;
@@ -33,9 +34,16 @@ private PostgreSQLDialectProvider()
33
34
base . SelectIdentitySql = "SELECT LASTVAL()" ;
34
35
this . NamingStrategy = new PostgreSqlNamingStrategy ( ) ;
35
36
this . StringSerializer = new JsonStringSerializer ( ) ;
37
+ }
38
+
39
+ public override void OnAfterInitColumnTypeMap ( )
40
+ {
41
+ DbTypeMap . Set < TimeSpan > ( DbType . Time , "interval" ) ;
42
+ DbTypeMap . Set < TimeSpan ? > ( DbType . Time , "interval" ) ;
43
+ DbTypeMap . Set < DateTimeOffset > ( DbType . DateTimeOffset , DateTimeOffsetColumnDefinition ) ;
44
+ DbTypeMap . Set < DateTimeOffset ? > ( DbType . DateTimeOffset , DateTimeOffsetColumnDefinition ) ;
36
45
37
- DbTypeMap . Set < TimeSpan > ( DbType . Time , "Interval" ) ;
38
- DbTypeMap . Set < TimeSpan ? > ( DbType . Time , "Interval" ) ;
46
+ base . OnAfterInitColumnTypeMap ( ) ;
39
47
}
40
48
41
49
public override string GetColumnDefinition (
@@ -56,14 +64,11 @@ public override string GetColumnDefinition(
56
64
}
57
65
else if ( fieldType == typeof ( string ) )
58
66
{
59
- if ( fieldLength != null )
60
- {
61
- fieldDefinition = string . Format ( base . StringLengthColumnDefinitionFormat , fieldLength ) ;
62
- }
63
- else
64
- {
65
- fieldDefinition = textColumnDefinition ;
66
- }
67
+ fieldDefinition = fieldLength == int . MaxValue
68
+ ? MaxStringColumnDefinition
69
+ : fieldLength != null ?
70
+ string . Format ( StringLengthColumnDefinitionFormat , fieldLength ) :
71
+ textColumnDefinition ;
67
72
}
68
73
else
69
74
{
0 commit comments