Skip to content

Commit 6f4ba3f

Browse files
committed
NH-2943: Add support for OracleDbType.XmlType for OracleManagedDataClientDriver
1 parent a412978 commit 6f4ba3f

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/NHibernate/Driver/OracleManagedDataClientDriver.cs

+11
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public class OracleManagedDataClientDriver : ReflectionBasedDriver, IEmbeddedBat
2020
private readonly PropertyInfo oracleCommandBindByName;
2121
private readonly PropertyInfo oracleDbType;
2222
private readonly object oracleDbTypeRefCursor;
23+
private readonly object oracleDbTypeXmlType;
2324

2425
/// <summary>
2526
/// Initializes a new instance of <see cref="OracleDataClientDriver"/>.
@@ -42,6 +43,7 @@ public OracleManagedDataClientDriver()
4243

4344
var oracleDbTypeEnum = ReflectHelper.TypeFromAssembly("Oracle.ManagedDataAccess.Client.OracleDbType", driverAssemblyName, false);
4445
oracleDbTypeRefCursor = Enum.Parse(oracleDbTypeEnum, "RefCursor");
46+
oracleDbTypeXmlType = Enum.Parse(oracleDbTypeEnum, "XmlType");
4547
}
4648

4749
/// <summary></summary>
@@ -78,12 +80,21 @@ protected override void InitializeParameter(IDbDataParameter dbParam, string nam
7880
case DbType.Guid:
7981
base.InitializeParameter(dbParam, name, GuidSqlType);
8082
break;
83+
case DbType.Xml:
84+
this.InitializeParameter(dbParam, name, oracleDbTypeXmlType);
85+
break;
8186
default:
8287
base.InitializeParameter(dbParam, name, sqlType);
8388
break;
8489
}
8590
}
8691

92+
private void InitializeParameter(IDbDataParameter dbParam, string name, object sqlType)
93+
{
94+
dbParam.ParameterName = FormatNameForParameter(name);
95+
oracleDbType.SetValue(dbParam, sqlType, null);
96+
}
97+
8798
protected override void OnBeforePrepare(IDbCommand command)
8899
{
89100
base.OnBeforePrepare(command);

0 commit comments

Comments
 (0)