Проблема с Entity Framework и Oracle - PullRequest
0 голосов
/ 09 марта 2020

У меня есть среда, которая использует Oracle .DataAccess.dll для Oracle 12 c (ODA C 32-битная и версия 4.122.1.0) для подключения к БД Oracle. В этой среде база данных Oracle находится на том же компьютере, что и ODA C (для целей разработки).

Ранее я работал вместе, чтобы мое приложение. NET могло работать и получить доступ к БД. Недавно мне пришлось выключить компьютеры и переустановить все в моей новой среде. Однако, как всегда, ODA C немного упрям.

Я могу подключиться к БД, используя следующее:

var conn = new OracleConnection(connectionString);
try
{
   conn.Open();
   conn.Close();
   return "Yes";
}
catch (Exception ex)
{
   return "No, because: " + ex.Message;
}

Однако приложение, над которым я работаю, открывает вместо этого соединение через Entity Framework. Он использует следующее:

public DatabaseContext()
       : base(new OracleConnection("Data Source=localhost:1521/dbName;User Id=dbUser;Password=dbPassword;"), true)
{
}

Способ, которым ранее запускалось приложение, работал на моем другом ноутбуке, но эта новая машина, на которой я работаю, выдает следующую ошибку при попытке запустить приложение:

Невозможно определить имя поставщика для подключения типа Oracle .DataAccess.Client.OracleConnection '.

Мой tnsNames.ora для клиента настроен следующим образом:

dbName =
   (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dbName) 
    )
  )

Я прошел несколько установок ODA C и Oracle. На данный момент у меня как будто нет идей. Любая помощь будет приветствоваться.

1 Ответ

0 голосов
/ 11 марта 2020

Я разобрался в проблеме. Это часть установки, которая является проблемой. После установки я пропустил настройку провайдера настройки для. NET. В моей предыдущей документации говорилось, что нельзя выбирать, но, очевидно, это неправильно. Выбор этого параметра немедленно устранил проблему.

...