我正在尝试使用 nHibernate 连接到 Oracle 数据库。我可以使用 .Net 驱动程序进行连接:
<property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property>
但是,我更喜欢使用 Oracle 附带的 OracleDataClientDriver(或 nHibernate?我忘了)。无论如何,我正在使用这个博客的说明:
http://tiredblogger.wordpress.com/2008/11/07/using-oracle-odp-with-nhibernate-from-ac-class-library/
一切都很好,但是当我将具有以下设置的 app.config 添加到我的单元测试类时:
<runtime>
<assemblyBinding xmlns=“urn:schemas-microsoft-com:asm.v1“>
<qualifyAssembly partialName=“Oracle.DataAccess“
fullName=“Oracle.DataAccess,
Version=2.111.6.20,
Culture=neutral,
PublicKeyToken=89b483f429c47342“ />
</assemblyBinding>
</runtime>
并尝试运行我的测试,我收到以下错误:
Test 'M:UTOracleImporter.UT_SchemaDAO.Test_GetCustomer' failed: Could not load type 'TestDriven.Framework.Resident.IResidentTestRunner' from assembly 'TestDriven.Framework, Version=2.0.0.0, Culture=neutral, PublicKeyToken=50ecb853f8c6b8d2'.
System.TypeLoadException: Could not load type 'TestDriven.Framework.Resident.IResidentTestRunner' from assembly 'TestDriven.Framework, Version=2.0.0.0, Culture=neutral, PublicKeyToken=50ecb853f8c6b8d2'.
at TestDriven.TestRunner.AdaptorTestRunner.Run(ITestListener testListener, ITraceListener traceListener, String assemblyPath, String testPath)
at TestDriven.TestRunner.ThreadTestRunner.Runner.Run()
有什么建议吗? 编辑:我已将测试驱动程序集添加到 GAC 中,现在出现不同的错误:
NHibernate.HibernateException : 找不到程序集 Oracle.DataAccess 中的 IDbCommand 和 IDbConnection 实现。确保程序集 Oracle.DataAccess 位于应用程序目录或全局程序集缓存中。如果程序集在 GAC 中,请使用应用程序配置文件中的元素来指定程序集的全名。
这与要在 App.Config 中解决的错误相同。Oracle.DataAccess 已添加到 GAC,我也在应用程序文件夹中尝试过。然而错误仍然出现。