Estoy usando NHibernate 4.0.4 y he instalado el paquete nuget "Oracle.ManagedDataAccess" ( https://www.nuget.org/packages/Oracle.ManagedDataAccess/ ).
Para configurar NHibernate para usar el controlador administrado de Oracle, es necesario cambiar solo un poco el archivo hibernate.cfg.xml y usar NHibernate.Driver.OracleManagedDataClientDriver como la "conexión.driver_class".
Por lo tanto, mi archivo de configuración xml es el siguiente:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.driver_class">NHibernate.Driver.OracleManagedDataClientDriver</property>
<property name="connection.connection_string">User Id=user;Password=pws;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.10.10.18)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=SRV)))</property>
<property name="show_sql">true</property>
<property name="dialect">NHibernate.Dialect.Oracle10gDialect</property>
<property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
</session-factory>
</hibernate-configuration>
Buena suerte. Sé que usar Oracle y ORM puede ser una experiencia bastante molesta, pero al final vale la pena el esfuerzo.