File tree Expand file tree Collapse file tree
Xtensive.Orm.SqlServer/Sql.Drivers.SqlServer/v09
Xtensive.Orm/Sql/ValueTypeMapping Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -80,6 +80,26 @@ public override void BindString(DbParameter parameter, object value)
8080 : NVarCharMaxLength ;
8181 }
8282
83+ #if NET6_0_OR_GREATER
84+ public override void BindDateOnly ( DbParameter parameter , object value )
85+ {
86+ parameter . DbType = DbType . Date ;
87+ parameter . Value = value != null ? ( DateOnly ) value : DBNull . Value ;
88+ }
89+
90+ public override void BindTimeOnly ( DbParameter parameter , object value )
91+ {
92+ parameter . DbType = DbType . Time ;
93+ parameter . Value = value != null ? ( TimeOnly ) value : DBNull . Value ;
94+ }
95+
96+ public override object ReadDateOnly ( DbDataReader reader , int index ) =>
97+ reader . GetFieldValue < DateOnly > ( index ) ;
98+
99+ public override object ReadTimeOnly ( DbDataReader reader , int index ) =>
100+ reader . GetFieldValue < TimeOnly > ( index ) ;
101+ #endif
102+
83103 public override SqlValueType MapSByte ( int ? length , int ? precision , int ? scale )
84104 {
85105 return new SqlValueType ( SqlType . Int16 ) ;
Original file line number Diff line number Diff line change @@ -136,13 +136,13 @@ public virtual void BindDateTime(DbParameter parameter, object value)
136136 public virtual void BindDateOnly ( DbParameter parameter , object value )
137137 {
138138 parameter . DbType = DbType . Date ;
139- parameter . Value = value != null ? ( DateOnly ) value : DBNull . Value ;
139+ parameter . Value = value != null ? ( ( DateOnly ) value ) . ToDateTime ( TimeOnly . MinValue ) : DBNull . Value ;
140140 }
141141
142142 public virtual void BindTimeOnly ( DbParameter parameter , object value )
143143 {
144144 parameter . DbType = DbType . Time ;
145- parameter . Value = value != null ? ( TimeOnly ) value : DBNull . Value ;
145+ parameter . Value = value != null ? ( ( TimeOnly ) value ) . ToTimeSpan ( ) : DBNull . Value ;
146146 }
147147#endif
148148
@@ -226,10 +226,10 @@ public virtual object ReadDateTime(DbDataReader reader, int index) =>
226226#if NET6_0_OR_GREATER
227227
228228 public virtual object ReadDateOnly ( DbDataReader reader , int index ) =>
229- reader . GetFieldValue < DateOnly > ( index ) ;
229+ DateOnly . FromDateTime ( reader . GetFieldValue < DateTime > ( index ) ) ;
230230
231231 public virtual object ReadTimeOnly ( DbDataReader reader , int index ) =>
232- reader . GetFieldValue < TimeOnly > ( index ) ;
232+ TimeOnly . FromTimeSpan ( reader . GetFieldValue < TimeSpan > ( index ) ) ;
233233#endif
234234
235235 public virtual object ReadDateTimeOffset ( DbDataReader reader , int index ) =>
You can’t perform that action at this time.
0 commit comments