ODP.NET is a high performance provider that takes advantage of Oracle database functionality. More than that, ODP.NET is fully documented, and updates regularly.
When working with NHinbernate, we can still make sure that it's using ODP.NET under the hood. This will allow us to utilize ODP.NET features like the Connection Pool, Tracing etc. Plus, since this product is at Oracle's hands, it will ensure us compatibility and optimization with the Oracle database.
In the NHibernate config file, use this driver_class:
<property name="connection.driver_class">
NHibernate.Driver.OracleDataClientDriver
</property>
Can it be easier than that?