Skip to content

Commit 6cacdc6

Browse files
committed
Fix DbType.Guid function registration
1 parent 8675d2d commit 6cacdc6

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/NHibernate/Dialect/DB2Dialect.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ public DB2Dialect()
5555
RegisterColumnType(DbType.String, 8000, "VARCHAR($l)");
5656
RegisterColumnType(DbType.String, 2147483647, "CLOB");
5757
RegisterColumnType(DbType.Time, "TIME");
58+
RegisterColumnType(DbType.Guid, "CHAR(16) FOR BIT DATA");
5859

5960
RegisterFunction("abs", new StandardSQLFunction("abs"));
6061
RegisterFunction("absval", new StandardSQLFunction("absval"));

src/NHibernate/Driver/DB2DriverBase.cs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Data;
33
using System.Data.Common;
44
using NHibernate.Engine;
5+
using NHibernate.SqlTypes;
56

67
namespace NHibernate.Driver
78
{
@@ -10,6 +11,8 @@ namespace NHibernate.Driver
1011
/// </summary>
1112
public abstract class DB2DriverBase : ReflectionBasedDriver
1213
{
14+
private static readonly SqlType GuidSqlType = new SqlType(DbType.Binary, 16);
15+
1316
/// <param name="assemblyName"></param>
1417
/// <exception cref="HibernateException">
1518
/// Thrown when the <c>assemblyName</c> assembly can not be loaded.
@@ -47,7 +50,15 @@ public override IResultSetsCommand GetResultSetsCommand(ISessionImplementor sess
4750

4851
protected override void InitializeParameter(DbParameter dbParam, string name, SqlType sqlType)
4952
{
50-
dbParam.DbType = sqlType.DbType;
53+
switch (sqlType.DbType)
54+
{
55+
case DbType.Guid:
56+
dbParam.DbType = DbType.Binary;
57+
break;
58+
default:
59+
dbParam.DbType = sqlType.DbType;
60+
break;
61+
}
5162
}
5263
}
5364
}

0 commit comments

Comments
 (0)