我有使用 NHibernate 用 C# 编写的 .NET 3.5 应用程序。
在我在 connection.driver_class 属性中有 OracleClientDriver 之前,说我使用 System.Data.Oracle 并且一切正常,但是由于某些原因现在我需要使用 ODP,所以我将此属性更改为:NHibernate.Driver.OracleDataClientDriver。
当我运行我的代码时,在会话工厂创建过程中出现以下错误:
Unable to cast object of type 'Oracle.DataAccess.Client.OracleConnection' to type 'System.Data.Common.DbConnection'
在 Inernet 中短暂搜索后,我找到了解决方案:添加:
<property name="hbm2ddl.keywords">none</property>
所以现在 NHibernate 成功构建了 Session Factory 但在 session.Flush() 中出现以下错误:
System.ArgumentException: Value does not fall within the expected range
at Oracle.DataAccess.Client.OracleParameter.set_DbType(DbType value)
at NHibernate.Driver.DriverBase.InitializeParameter(IDbDataParameter dbParam, String name, SqlTypes sqlType)
有任何想法吗?
谢谢你的前面。但这给了我以下