Entity Framework: DbContext e definindo o ProviderName
Quando você deriva de DbContext e usa o construtor sem parâmetros, ele carregará uma string de conexão do web.config. Você também tem a opção de especificar explicitamente o connectionString usando um dos outros construtores DbContext.
Minha situação específica determina que a cadeia de conexão NÃO PODE ser especificada no web.config, pois a localização do servidor / nome de usuário e senha são determinados no tempo de execução. Correção fácil, certo? Basta usar o construtor mencionado acima para especificar a string de conexão? Errado.
O problema é que quando você especifica a string de conexão usando o dito construtor, ele ainda tenta usar o provedor padrão, então se você estiver usando um ou mais provedores não padrão, como eu, ele não funcionará.
Tenho certeza que posso mudar o provedor padrão no web.config, mas eu quero usar vários provedores, então isso não funcionará.
A única maneira possível em torno disso que eu posso ver é usar ObjectContext em vez de DbContext, que parece permitir que você especifique o provedor junto com a cadeia de conexão do banco de dados.
Existe alguma outra maneira de fazer isso? Minha solução é razoavelmente razoável?
Eu acredito que também posso criar um DbContext de uma instância ObjectContext.