Skip to content

Instantly share code, notes, and snippets.

@Compufreak345
Last active November 4, 2018 20:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Compufreak345/eb6bb274a5a49cbbd755b6981d2399b1 to your computer and use it in GitHub Desktop.
Save Compufreak345/eb6bb274a5a49cbbd755b6981d2399b1 to your computer and use it in GitHub Desktop.
// ConfigureServices
var connectionStringProvider = new ConnectionStringProvider<WebApiDbContext>("ConnectionString");
services.AddSingleton(connectionStringProvider);
services.AddDbContext<WebApiDbContext>((s, o) => o.UseSqlite(
s.GetService<ConnectionStringProvider<WebApiDbContext>>().ConnectionString));
// Singleton provider for connection string (or other DbContextOptions)
public class ConnectionStringProvider<TContext> where TContext : DbContext
{
public string ConnectionString { get; set; }
public ConnectionStringProvider(string connectionString)
{
this.ConnectionString = connectionString;
}
}
// Now you can just get the ConnectionStringProvider from your DI-Chain and swap the connection string at runtime,
// with effect at the next scope (request).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment