gpt4 book ai didi

c# - 无法从 NHibernate.Driver.OracleDataClientDriver 创建驱动程序

转载 作者:可可西里 更新时间:2023-11-01 03:13:50 25 4
gpt4 key购买 nike

这是引发异常的代码:

public static class NHibernateSessionManager
{
private static ISessionFactory sessionFactory = new Configuration().Configure().BuildSessionFactory();

public static ISession GetSession(string clientId)
{
if (ContextSession == null)
ContextSession = sessionFactory.OpenSession(new OracleIntercerptor(clientId.ToUpper()));
else
((OracleConnection)ContextSession.Connection).ClientId = clientId;

return ContextSession;
}

// - snip -
}

以及对引发异常的代码的调用:

    private ISession NHibernateSession
{
get
{
return NHibernateSessionManager.GetSession(SessionWrapper.GetUser());
}
}

我得到一个TypeInitializationException

{"The type initializer for 'Sigaf.Presupuesto.EntidadesDAL.NHibernate.NHibernateSessionManager' threw an exception."}

有一个内部异常(exception)

{"Could not create the driver from NHibernate.Driver.OracleDataClientDriver."}

更多的内部异常将我引向 NRE:

Object reference not set to an instance of an object.
at NHibernate.Driver.OracleDataClientDriver..ctor()

NHibernate v3.0目标框架 v4.0此代码实现适用于其他类似的解决方案。

哦,Hibernate.config 文件:

<?xml version="1.0"?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="dialect">NHibernate.Dialect.Oracle10gDialect</property>
<property name="current_session_context_class">web</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
<property name="connection.driver_class">NHibernate.Driver.OracleDataClientDriver</property>
<property name="connection.connection_string_name">Sigaf</property>
<property name="default_schema">PRE</property>
<property name="show_sql">true</property>
<mapping assembly="Sigaf.Presupuesto.EntidadesDAL" />
</session-factory>
</hibernate-configuration>

最佳答案

确保实际的 Oracle 驱动程序在您的应用程序 bin 文件夹中。

例如,在 Visual Studio 中,您应该在项目中添加对 Oracle.DataAcess.dll 的引用。

选择 DLL => 右键单击​​它 => 在属性网格中选择 Copy Local = True。

这应该可以解决您的问题。

关于c# - 无法从 NHibernate.Driver.OracleDataClientDriver 创建驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6141703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com