[英]How to add DbContext based on environment in ASP.net Core
這就是我目前在Startup.cs中的ConfigureServices方法中添加DbContext的方法:
public void ConfigureServices(IServiceCollection services)
{
.....
services.AddDbContext<MyDbContext>(options =>
options.UseMySQL(Configuration.GetConnectionString("DefaultConnection")));
.....
}
我的連接字符串存儲在我的appsettings.json文件中,例如:
{
....
"ConnectionStrings": {
"DefaultConnection": "server=localhost;user id=root;password=root;database=mydb;sslmode=none"
}
....
}
如果我想切換正在連接的數據庫,如果它是“開發”與“生產”環境,如何使“services.AddDbContext()”切換數據庫?
您可以在不同的appsettings
文件中配置不同的環境連接字符串,如下所示
對於測試環境,請使用appsettings。 測試 .json
"Data": {
"MyDbContext": {
"ConnectionString": "" /*<<== TestDatabase connection string */
},
對於prod環境,請使用appsettings。 prod .json
"Data": {
"MyContext": {
"ConnectionString": "" /*<<== ProdDatabase connection string */
},
使用ASPNETCORE_ENVIRONMENT
環境變量將當前環境設置為Test或Prod值。
在Startup中,您可以像這樣使用 -
services.AddDbContext<MyContext>(options =>
options.UseSqlServer(Configuration["Data:MyContext:ConnectionString"]));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.