@@ -19,6 +19,7 @@ private PostgreSQLDialectProvider()
1919 base . BoolColumnDefinition = "boolean" ;
2020 base . TimeColumnDefinition = "time" ;
2121 base . DateTimeColumnDefinition = "timestamp" ;
22+ base . DateTimeOffsetColumnDefinition = "timestamp" ;
2223 base . DecimalColumnDefinition = "numeric(38,6)" ;
2324 base . GuidColumnDefinition = "uuid" ;
2425 base . ParamString = ":" ;
@@ -33,9 +34,16 @@ private PostgreSQLDialectProvider()
3334 base . SelectIdentitySql = "SELECT LASTVAL()" ;
3435 this . NamingStrategy = new PostgreSqlNamingStrategy ( ) ;
3536 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 ) ;
3645
37- DbTypeMap . Set < TimeSpan > ( DbType . Time , "Interval" ) ;
38- DbTypeMap . Set < TimeSpan ? > ( DbType . Time , "Interval" ) ;
46+ base . OnAfterInitColumnTypeMap ( ) ;
3947 }
4048
4149 public override string GetColumnDefinition (
@@ -56,14 +64,11 @@ public override string GetColumnDefinition(
5664 }
5765 else if ( fieldType == typeof ( string ) )
5866 {
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 ;
6772 }
6873 else
6974 {
0 commit comments