Esta respuesta resume (con suerte) todos los pasos necesarios, muchos de los cuales están documentados en varios lugares en línea y podrían ahorrarle a alguien horas de búsqueda en Google.
A. Cómo implementar y configurar Oracle.DataAccess.Client.
A.1. Descargue ODAC112030Xcopy_64bit.zip o ODAC112030Xcopy_32bit.zip.
A.1.1. Extraiga el contenido de las siguientes carpetas dentro del archivo zip en la carpeta bin/setup de su aplicación/host:
A.1.1.1. instantclient_11_2
A.1.1.2. odp.net4\bin\
A.1.1.3. odp.net4\odp.net\bin\
A.1.1.4. odp.net4\odp.net\PublisherPolicy\4\
A.2. Agregue la siguiente sección al principio de app.config/web.config de su aplicación/host (si ya tiene un elemento configSections, agréguele la sección:
<configSections>
<section name="oracle.dataaccess.client"
type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
A.3. Agregue las siguientes secciones al final de app.config/web.config de su aplicación/host:
A.4. Desde la carpeta ODAC112030Xcopy Ejecutar:
configure.bat odp.net4 somename
Recomiendo usar oraclehome112030_32 u oraclehome112030_64 como "algún nombre" anterior.
<system.data>
<DbProviderFactories>
<!-- Remove in case this is already defined in machine.config -->
<remove invariant="Oracle.DataAccess.Client" />
<add name="Oracle Data Provider for .NET"
invariant="Oracle.DataAccess.Client"
description="Oracle Data Provider for .NET"
type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
</DbProviderFactories>
</system.data>
<oracle.dataaccess.client>
<settings>
<add name="bool" value="edmmapping number(1,0)" />
<add name="byte" value="edmmapping number(3,0)" />
<add name="int16" value="edmmapping number(5,0)" />
<add name="int32" value="edmmapping number(10,0)" />
<add name="int64" value="edmmapping number(19,0)" />
<add name="int16" value="edmmapping number(38,0)" />
<add name="int32" value="edmmapping number(38,0)" />
<add name="int64" value="edmmapping number(38,0)" />
</settings>
</oracle.dataaccess.client>
B. Cómo implementar y configurar Oracle.ManagedDataAccess.Client.
B.1. Descargar ODP.NET_Managed_1120350_Beta.zip
B.1.1. Extraiga los siguientes archivos en la carpeta bin/setup de su aplicación/host.
B.1.1.1. Oracle.ManagedDataAccess.dll
B.1.1.2. x64\Oracle.ManagedDataAccessDTC.dll o x86\Oracle.ManagedDataAccessDTC.dll
B.2. Agregue la siguiente sección al principio de app.config/web.config de su aplicación/host (si ya tiene un elemento configSections, agréguele la sección:
<configSections>
<section name="oracle.manageddataaccess.client"
type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.112.3.50, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</configSections>
B.3. Agregue las siguientes secciones al final de app.config/web.config de su aplicación/host:
<system.data>
<DbProviderFactories>
<!-- Remove in case this is already defined in machine.config -->
<remove invariant="Oracle.ManagedDataAccess.Client" />
<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.112.3.50, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>
</system.data>
<oracle.manageddataaccess.client>
<version number="*">
<settings>
<!-- Set this path if you are using TNS aliases as connection strings (not recommended) -->
<!-- Instead you can use "SERVER_NAME:PORT/SERVICE_NAME" as your data source -->
<setting name="TNS_ADMIN" value="C:\"/>
</settings>
<edmMappings>
<edmMapping dataType="number">
<add name="bool" precision="1"/>
<add name="byte" precision="2" />
<add name="int16" precision="5" />
</edmMapping>
</edmMappings>
</version>
</oracle.manageddataaccess.client>
C. Para la construcción:
C.1. Agregue esta sección a la aplicación.config de la asamblea de su EDMX:
(No he probado esto con Oracle. Administrado DataAccess.Client todavía)
<oracle.dataaccess.client>
<settings>
<add name="bool" value="edmmapping number(1,0)" />
<add name="byte" value="edmmapping number(3,0)" />
<add name="int16" value="edmmapping number(5,0)" />
<add name="int32" value="edmmapping number(10,0)" />
<add name="int64" value="edmmapping number(19,0)" />
<add name="int16" value="edmmapping number(38,0)" />
<add name="int32" value="edmmapping number(38,0)" />
<add name="int64" value="edmmapping number(38,0)" />
</settings>
</oracle.dataaccess.client>
C.2. Agregue un archivo llamado Oracle.xsd al mismo ensamblado con el contenido:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="odpnetappconfigmappings" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="addtype">
<xs:attribute name="name" type="xs:string" />
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
<xs:complexType name="settingstype">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="add" type="addtype" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="oracledataaccessclienttype">
<xs:sequence minOccurs="0" maxOccurs="1">
<xs:element name="settings" type="settingstype" />
</xs:sequence>
</xs:complexType>
<xs:element name="oracle.dataaccess.client" type="oracledataaccessclienttype" />
</xs:schema>
C.3. Agregue el XSD anterior a la lista de esquemas de app.config anterior.
C.4. Si obtiene errores para las asignaciones booleanas durante la compilación aunque la compilación se realice correctamente, agregue las asignaciones de app.config a devenv.exe.config de Visual Studio.
C.5. Si desea utilizar Oracle.ManagedDataAccess.Client, edite el atributo del proveedor de datos en EDMX manualmente antes de la compilación (no lo he probado) o edítelo antes de la creación de Contexto en tiempo de ejecución y cargue MSSL desde la copia editada en lugar de desde recurso (esto parece funcionar y también uso un truco similar para elegir qué MSSL cargar para diferentes proveedores de bases de datos).
D. Para soporte de diseñador:
D.1. Descargue win64_11gR2_client.zip o win32_11gR2_client.zip e instálelo.
D.1.1. Seleccione "Administrador" como tipo de instalación.
D.2. descargue ODT e instálelo.
Probé esto (A y B) en una máquina en blanco (VM) con Windows 7 x64.
Este procedimiento no parece funcionar con la versión x86 de Oracle.DataAccess.Client en Windows x64.
El procedimiento parece funcionar con la versión x64 de Oracle.DataAccess.Client en Windows x64 y con ambas versiones de Oracle.ManagedDataAccess.Client.