Entity Framework Core várias seqüências de conexão no mesmo DBContext?

Eu tenho um aplicativo Asp.Net Core com Entity Framework Core que inicializo da seguinte maneira:

services.AddDbContext<ApplicationDbContext>(options => 
         options.UseSqlServer(sqlConnectionString));

Isso funciona bem, mas tenho um cenário em que preciso ler / gravar no banco de dados primário para operações normais, mas para algumas operações preciso ler de um servidor alternativo (um destino de replicação que é somente leitura que usamos para relatórios).

Com a maneira como a nova API principal faz tudo via Injeção de Dependência e configuração no StartUp.cs, como alterno as cadeias de conexão, mas uso a mesma classe ApplicationDbContext?

Eu sei que uma opção seria ter uma duplicata da classe ApplicationDbContext que eu registro no sistema DI usando uma cadeia de conexão diferente, mas eu gostaria de evitar a manutenção de dois objetos DBContext idênticos apenas porque às vezes eu preciso ler de um banco de dados diferente servidor (mas com exatamente o mesmo esquema).

Agradecemos antecipadamente por quaisquer ponteiros!

questionAnswers(1)

yourAnswerToTheQuestion