假設我有 4 臺服務器和 4 個資料庫,它們都有相同的目錄。可以在運行時更改 {serverLocation} 嗎?
"ConnectionStrings": {
"Euro": "Data Source=campus-db-{serverLocation};Initial Catalog=Shool;Integrated Security=True"}
方法應該是這樣的:
[HttpGet]
public async Task<IActionResult> GetStock(int id, string serverLocation)
{
var queryStock = _context.TblItem.FindAsync(id);
return Ok(queryStock);
}
這個想法是我只需要 1 個 DBContext 1 模型,因為在所有 4 臺服務器上,目錄都是相同的,并且資料庫結構
uj5u.com熱心網友回復:
這可能對你有幫助,請檢查。
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddDbContext<ApplicationDbContext>(
options =>
{
// write conditional statements here like
if(somecondition-a)
options.UseSqlServer("name=ConnectionStrings:Connection-A"));
if(somecondition-b)
options.UseSqlServer("name=ConnectionStrings:Connection-B"));
}
}
有關更多資訊,請查看此檔案
如果這沒有幫助,請嘗試這種方法
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContextFactory<ApplicationDbContext>(
options =>
{
// write conditional statements here like
if(somecondition-a)
options.UseSqlServer("name=ConnectionStrings:Connection-A"));
if(somecondition-b)
options.UseSqlServer("name=ConnectionStrings:Connection-B"));
}
}
uj5u.com熱心網友回復:
你可以這樣寫,但我不確定
IConfiguration _configuration;
public StockManager(IConfiguration configuration)
{
_configuration = configuration;
}
public object FindAsync(int id,serverLocation)
{
//do stuff
_configuration.GetConnectionString($"ConnectionStrings:{serverLocation}");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/412749.html
標籤:
上一篇:如何將jsonb欄位中的欄位名稱映射到物件中的另一個名稱?
下一篇:無法創建物體框架代碼優先遷移
