Impossible de créer le pilote à partir de NHibernate.Driver.OracleDataClientDriver
Voici le code de la levée de l'exception:
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 -
}
et l'appel à l'endroit du code où l'exception est soulevée:
private ISession NHibernateSession
{
get
{
return NHibernateSessionManager.GetSession(SessionWrapper.GetUser());
}
}
- Je obtenir un TypeInitializationException
{"L'initialiseur de type pour
'Sigaf.Presupuesto.EntidadesDAL.NHibernate.NHibernateSessionManager'
a déclenché une exception."}
Avec un intérieur d'exception de
{"Impossible de créer le pilote à partir de
NHibernate.Le pilote.OracleDataClientDriver."}
Quelques exceptions internes me conduisent à une NRE:
Objet de référence non définie à une
instance d'un objet.
au
NHibernate.Le pilote.OracleDataClientDriver..ctor()
NHibernate v3.0
Cible Framework v4.0
Cette mise en œuvre du code est de travailler pour les autres, similaires, des solutions.
Oh, la mise en veille prolongée.fichier de configuration:
<?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>
source d'informationauteur bevacqua
Vous devez vous connecter pour publier un commentaire.
Assurez-vous que le réel du pilote Oracle est dans votre demande de dossier bin.
Dans Visual Studio, vous devez ajouter une référence à
Oracle.DataAcess.dll
dans votre projet par exemple.Sélectionnez la DLL => clic Droit => Dans les Propriétés de la grille sélectionnez Copie Locale = True.
Cela devrait résoudre votre problème.