This is how I am currently adding my DbContext in my ConfigureServices method in Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
    .....
    services.AddDbContext<MyDbContext>(options =>
        options.UseMySQL(Configuration.GetConnectionString("DefaultConnection")));
    .....
}
And my connection string is stored in my appsettings.json file, like this for example:
{
    ....
  "ConnectionStrings": {
    "DefaultConnection": "server=localhost;user id=root;password=root;database=mydb;sslmode=none"
  }
  ....
}
If I want to switch which database is being connected, how do I make the "services.AddDbContext()" switch the database if it is "Development" vs. "Production" environments?
You can configure different environment connection strings in different appsettings files like this-
For test environment, use appsettings.test.json
 "Data": {
    "MyDbContext": {
      "ConnectionString": "" /*<<== TestDatabase connection string */
    },
For prod environment, use appsettings.prod.json
 "Data": {
    "MyContext": {
      "ConnectionString": "" /*<<== ProdDatabase connection string */
    },
Use ASPNETCORE_ENVIRONMENT environment variable to set current environment as Test or Prod values.
In Startup, you can use like this-
     services.AddDbContext<MyContext>(options =>
options.UseSqlServer(Configuration["Data:MyContext:ConnectionString"]));
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With