前言
在 ABP 專案中,預設的 你的APDbContext
Class 會設定 ConnectionStringName
屬性
,預設值為 Default
,如下,
1 | [ ] |
在 appsettings.json 中的 ConnectionStrings
中,
也會預設有 Default 的連線字串設定,如下,
1 | { |
那有什麼方式可以在程式執行時,
動態設定 DB 的連線字串呢?
實作
動態設定 DB 的連線字串依 ABP Connection Strings 有 2 種方式,
1.Abp Module 的 ConfigureServices 中設定
在 Module 的 ConfigureServices
Method 中改變連線字串,
例如在 Web 專案的 Module 中,改變 Default 的連線字串(服務啟動時),如下,
1 | Configure<AbpDbConnectionOptions>(options => |
2.實作 IConnectionStringResolver 來更換 連線字串
更換預設的 IConnectionStringResolver
後,
每次需要連線字串時,都會呼叫它的 ResolveAsync
來取得連線字串,
所以要依某些處理邏輯再給連線字串時,可以在這裡處理它。
依 How to dynamic modify the DbContext’s ConnectionString in AppService? 的範例回傳一個連線字串,如下,
1 | [ ] |
參考資源
ABP Connection Strings
ABP How to change connection string at runtime
How to dynamic modify the DbContext’s ConnectionString in AppService?