Skip to content

Commit c0516cc

Browse files
committed
Let driver handle datetimes automatically
1 parent cb2dad6 commit c0516cc

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

src/NHibernate/Driver/NpgsqlDriver.cs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,21 @@ public override IResultSetsCommand GetResultSetsCommand(Engine.ISessionImplement
6565

6666
public override bool SupportsMultipleQueries => true;
6767

68-
protected override void InitializeParameter(DbParameter dbParam, string name, SqlTypes.SqlType sqlType)
68+
protected override void InitializeParameter(DbParameter dbParam, string name, SqlType sqlType)
6969
{
70-
base.InitializeParameter(dbParam, name, sqlType);
70+
if (sqlType == null)
71+
throw new QueryException($"No type assigned to parameter '{name}'");
7172

72-
// Since the .NET currency type has 4 decimal places, we use a decimal type in PostgreSQL instead of its native 2 decimal currency type.
73+
dbParam.ParameterName = FormatNameForParameter(name);
7374
if (sqlType.DbType == DbType.Currency)
75+
{
76+
// Since the .NET currency type has 4 decimal places, we use a decimal type in PostgreSQL instead of its native 2 decimal currency type.
7477
dbParam.DbType = DbType.Decimal;
78+
}
79+
else if (DriverVersionMajor < 6 || sqlType.DbType != DbType.DateTime)
80+
{
81+
dbParam.DbType = sqlType.DbType;
82+
}
7583
}
7684

7785
// Prior to v3, Npgsql was expecting DateTime for time.

0 commit comments

Comments
 (0)