[英]Entity Framework - Use Dynamic connection string with Oracle Provider
我需要幫助 ! 我不確定標題是否重要,所以我會嘗試更好地解釋。
我在一個使用http請求到ASP.NET web api站點的角度網站上工作。 我的數據庫是Oracle數據庫。 我使用Entity Framework(Database First)和一個硬編碼連接字符串(在我的web.config中)
<add name="UserConnection" connectionString="DATA SOURCE=ip:port/name;PASSWORD=pwd;PERSIST SECURITY INFO=True;USER ID=usr" providerName="Oracle.ManagedDataAccess.Client" />
(我用ip替換了真正的信息;端口;名稱; pwd; usr,因為我無法顯示它們)
所有這一切都有效,但現在我的團隊希望能夠將此Oracle連接字符串與動態USER ID和PASSWORD結合使用
目標是使用一個用戶的憑據登錄我的角度應用程序,並使用相同的憑據連接到Oracle DB。 因此我不能再使用這個硬編碼連接字符串了。 (創建時,用戶都在db users表和oracle users表中)
我試圖為我的db:Dbcontext類創建另一個構造函數,給出一個連接字符串:base()第一個參數:
public partial class db:DbContext {
public db(string connectionString):base(connectionString){}
...}
其中connectionString是我web.config中的同一塊:“DATA SOURCE = ip:port / name; PASSWORD = pwd; PERSIST SECURITY INFO = True; USER ID = usr”
測試它給了我這個錯誤:
“提供的sqlconnection未指定初始目錄或attachdbfilename oracle”
我認為這不起作用,因為我沒有在base first param中提供我的providerName(“Oracle.ManagedDataAccess.Client”),但我沒有找到接受providerName的第二個參數的構造函數。
我也試過這個:
public db(string connectionString):base(new OracleConnection(connectionString)){}
但是Visual Studio給了我這個錯誤:
“Erreur CS1503 Argument 1:轉換不可能de'Oracle.ManagedDataAccess.Client.OracleConnection'en'System.Data.Entity.Infrastructure.DbCompiledModel'”
我不知道DbCompiledModel是什么,也許這是關鍵,或者說我做錯了。
我還嘗試編輯web.config連接字符串,更改用戶和密碼並使用使用此連接字符串的默認db構造函數,但編輯此文件不能執行我想要的操作:只有在db請求之后才會編輯連接字符串完了,它重新加載了應用程序。
我知道它會超級,我有點迷失在那里,我剛開始做一些BackEnd應用程序(我正在實習)我之前只做FrontEnd。
感謝閱讀,這有點長。 我沒有在論壇中找到我想要的成功結果,所以我嘗試自己詢問
桑尼
您可以動態設置new OracleConnection
,但還需要將contextOwnsConnection
設置為true
。 這可以解決您的錯誤:
“Erreur CS1503 Argument 1:轉換不可能de'Oracle.ManagedDataAccess.Client.OracleConnection'en'System.Data.Entity.Infrastructure.DbCompiledModel'”
public partial class Entities : DbContext
{
public Entities()
: base(new OracleConnection("DATA SOURCE=Server; PASSWORD=123;USER ID=SYSTEM"), true)
{
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.