L'ordine di precedenza per la risoluzione dei nomi TNS in ODP.NET, Managed Driver è questo (vedi qui):
- Alias dell'origine dati nella sezione 'dataSources' nella sezione del file di configurazione .NET.
- alias dell'origine dati nel file tnsnames.ora nella posizione specificata da 'TNS_ADMIN' nel file di configurazione .NET.
- alias dell'origine dati nel file tnsnames.ora presente nella stessa directory del file .exe.
- Alias dell'origine dati nel file tnsnames.ora presente in %TNS_ADMIN% (dove %TNS_ADMIN% è un'impostazione di una variabile di ambiente).
- alias dell'origine dati nel file tnsnames.ora presente in %ORACLE_HOME%\network\admin (dove %ORACLE_HOME% è un'impostazione della variabile di ambiente).
Credo che il motivo per cui il tuo campione funziona con Oracle.DataAccess ma non con Oracle.ManagedDataAccess è che la configurazione basata sul registro di Windows non è supportata per quest'ultimo (vedi documentazione) - l'installazione di ODP.NET imposta una chiave di registro ORACLE_HOME (HLKM\SOFTWARE\Oracle \Key_NAME\ORACLE_HOME) che viene riconosciuto solo dalla parte non gestita.