Eu estava recebendo esse erro ao implantar um aplicativo ASP.NET MVC 5 usando EntityFramework 5 em nosso servidor de 64 bits no qual a versão de 64 bits dos componentes do cliente ODAC estava instalada.
Segui o conselho de b_levitt e confirmei que a conexão poderia ser aberta manualmente sem usar as fábricas, então o ODAC estava instalado e funcionando, mas os métodos de fábrica não conseguiram localizar os assemblies.
Depois de puxar meu cabelo por um período não revelado, descobri que o problema estava no arquivo machine.config para a versão de 32 bits do .NET framework. Ele não incluiu as entradas para os provedores oracle, então adicionei manualmente as seguintes entradas a este arquivo:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
Debaixo
<configuration>
<configSections>
certifique-se de ter as seguintes duas seções inteiras:
<section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
<section name="oracle.dataaccess.client" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
Você pode obter as entradas exatas do seu arquivo machine.config na pasta framework64.
A seguir, sob
<system.data>
<DbProviderFactories>
certifique-se de ter os dois nomes de fábrica a seguir:
<add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
<add name="ODP.NET, Unmanaged Driver" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET, Unmanaged Driver" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
Depois de adicionar essas entradas, tudo estava funcionando para mim.