Поскольку этот вопрос был опубликован, теперь доступен Oracle Managed Client (предоставляется Oracle). Я использую это без проблем. Не требует поиска DLL или специальной конфигурации. Просто добавьте пакет, измените файл конфигурации, и все готово. NuGet Link и статья Oracle об этом .
Поскольку этот клиент полностью написан на управляемом коде .NET, он не зависит от архитектуры и не требует внешних DLL, установки клиента Oracle или чего-либо подобного.
Вы можете установить его в VS с помощью диспетчера пакетов.
Install-Package Oracle.ManagedDataAccess
Я решил поместить это в файл machine.config (хотя он также работает в web.config или app.config). Я обнаружил, что это помогает избежать конфликтов с другими драйверами, которые могут быть установлены:
<configuration>
<system.data>
<DbProviderFactories>
<remove invariant="Oracle.DataAccess.Client" />
<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.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
</DbProviderFactories>
</system.data>
<configuration>
Тогда для вашей строки подключения:
<add name="MyConnectionString" connectionString="Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=IPORNAMEOFHOST)(PORT=PORTNUM)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORACLESID)));User Id=ORACLEUSER;Password=ORACLEPASSWORD;" providerName="Oracle.ManagedDataAccess.Client"/>
- IPORNAMEOFHOST = Это IP-адрес или DNS-имя вашего сервера.
- PORTNUM = Это номер порта, который слушает Oracle. Обычно 1521.
- ORACLESID = SID базы данных, к которой вы пытаетесь подключиться.
- ORACLEUSER = Имя пользователя для подключения.
- ORACLEPASSWORD = Пароль для подключения.