使用 EF Core 脚手架 Oracle 数据库失败并出现登录被拒绝错误

Scaffolding an Oracle database with EF Core failing with logon denied error

我正在尝试从 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

我今天尝试了无数 google 的事情,但都没有成功。这可能是 Oracle 驱动程序的问题吗?

编辑

我创建了一个 .NET Core 控制台应用程序,安装了 EF Core 和 Oracle.EntityFrameworkCore 并尝试搭建脚手架,但遇到了同样的错误。还通过使用它来创建 DbContext 并查询 table,返回记录来确认连接字符串是正确的。

问题原来是密码中的美元符号 $。 VS Package Manager控制台提供了PowerShell接口,而$是PowerShell中的保留符号,所以需要在$前加一个反引号`进行转义。

Answer 来自 Oracle 社区论坛。