簡體   English   中英

使用 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

  • 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 並查詢表並返回記錄來確認連接字符串是正確的。

問題原來是密碼中的美元符號$ VS 包管理器控制台提供了 PowerShell 接口, $是 PowerShell 中的保留符號,因此需要通過在$前面放置一個反引號`來對其進行轉義。

來自 Oracle 社區論壇的回答

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM