3

我正在尝试从 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 脚手架错误
    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>接口但没有运气

我今天从谷歌尝试了无数的东西,但没有运气。这可能是 Oracle 驱动程序的问题吗?

编辑

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

4

1 回答 1

3

问题原来是$密码中的美元符号。VS Package Manager 控制台提供 PowerShell 接口,$是 PowerShell 中的保留符号,因此需要`$.

Oracle 社区论坛的回答

于 2019-05-30T11:14:48.553 回答