Создание базы данных Oracle с ошибкой EF Core с ошибкой входа в систему - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь создать некоторые классы из базы данных Oracle для использования с .NET Core Web API. Я установил следующие пакеты nuget:

Oracle.EntityFrameworkCore - v2.18.0-beta3
Oracle.ManagedDataAccess.Core - v2.18.6

Я пробовал использовать леса с обоими провайдерами, и я получаю две разные ошибки.

Команда эшафот - Scaffold-DbContext "Data Source=(DESCRIPTION=(ADDRESS_LIST= (ADDRESS=(COMMUNITY=tcpcom.world)(PROTOCOL=tcp)(HOST={Host})(PORT={Port})))(CONNECT_DATA=(SID={SID}))); User ID={UserId};Password={Password}" {Provider} -o Models

  • Oracle.EntityFrameworkCore scaffold error
    ORA-01017: invalid username/password; logon denied
    • Я подтвердил, что мои данные для входа верны
  • Ошибка скаффолда Oracle.ManagedDataAccess
    Unable to find expected assembly attribute named DesignTimeProviderServicesAttribute in provider assembly Oracle.ManagedDataAccess. This attribute is required to identify the class which acts as the design-time service provider factory.
    • Я попытался реализовать интерфейс IDesignTimeDbContextFactory<T> безуспешно

Сегодня я попробовал бесчисленное количество вещей из Google, но не повезло. Может ли это быть проблемой с драйверами Oracle?

EDIT

Я создал консольное приложение .NET Core, установил EF Core и Oracle.EntityFrameworkCore и попытался создать эшафот, но получил ту же ошибку. Также подтверждается правильность строки подключения, используя ее для создания DbContext и запроса таблицы, возвращая записи.

1 Ответ

0 голосов
/ 30 мая 2019

Проблема оказалась в знаке доллара $ в пароле.Консоль VS Package Manager предоставляет интерфейс PowerShell, а $ является зарезервированным символом в PowerShell, поэтому его необходимо экранировать, поместив обратный тик ` перед $.

Ответ с форумов сообщества Oracle.

...