programing

NHibernate에서 드라이버를 생성할 수 없습니다.드라이버.Oracle Data Client 드라이버

padding 2023. 7. 22. 09:31
반응형

NHibernate에서 드라이버를 생성할 수 없습니다.드라이버.Oracle Data Client 드라이버

다음은 예외를 제기하는 코드입니다.

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

{"시가프의 형식 이니셜라이저입니다.전제 조건:엔티다데스DAL.N자화.'NHibernate SessionManager'에서 예외를 발생시켰습니다."}

의 내부 예외를 제외하고는

{"NHibernate에서 드라이버를 생성할 수 없습니다.드라이버.Oracle DataClientDriver."}

몇 가지 내부 예외가 더 있어 NRE로 이어집니다.

개체 참조가 개체의 인스턴스로 설정되지 않았습니다.
NH 제1회에서.드라이버.Oracle DataClientDriver..ctor()

NHibernate v3.0 Target Framework 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 = > 마우스 오른쪽 버튼으로 클릭 = > Properties 그리드에서 Copy Local = True를 선택합니다.

이것으로 당신의 문제가 해결될 것입니다.

언급URL : https://stackoverflow.com/questions/6141703/could-not-create-the-driver-from-nhibernate-driver-oracledataclientdriver

반응형