NHibernate 和 ODP.NET

十一前在国内部帮忙,使用 ODP.NET 连接 Oracle 9i。但是在配置 NHibernate Driver 时遇到了一些问题,使用 NHibernate.Driver.OracleDataClientDriver 将抛出如下异常:

The IDbCommand and IDbConnection implementation in the assembly Oracle.DataAccess could not be found. Ensure that the assembly Oracle.DataAccess is located in the application directory or in the Global Assembly Cache. If the assembly is in the GAC, use <qualifyAssembly/> element in the application configuration file to specify the full name of the assembly.

安装时,ODP.NET for 9i 默认是将 DLL 注册到 GAC 中的,Project 中引用后 DAAB 是好用的,NH 中应该不会出问题才对,怎么会提示找不到 Oracle.DataAccess 呢?

仔细一看提示信息才知道,如果使用了 GAC,就要使用 qulifyAssembly 来解决该问题,具体请参加  MSDN 中的相关章节

其实,除了采用上面的方法之外,我们还可以直接将 Oracle.DataAccess.dll 文件 copy 到 Lib 文件夹下,再在 Project 中引用 Lib 文件夹下的 Oracle.DataAccess 文件。这样,重新编译后,将在 Bin 文件夹下找到该问题,运行时就不会出现上面的错误信息了。

注:为了便于项目管理,我们在建立 Solution 时,其下包含一个 Lib 文件夹,并将所有用到的第三方 DLL 统统放在 Lib 中。

posted on 2008-10-09 15:33  gucs  阅读(839)  评论(0编辑  收藏  举报

导航