Este artigo é parte da série:

O padrão MVC tem um lugar especial para salvar strings de conexão e outras configurações. Trata-se do arquivo “appsettings.json”. Observe nas linhas 9, 10 e 11 que criei uma string de conexão e dei para ela o nome “cnMain”:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"cnMain": "Server=localhost;Database=Treino01;Trusted_Connection=True;MultipleActiveResultSets=true"
"cnExtr": "Server=<Servidor>;Database=<Database>;UID=<Usuário>;PWD=<Senha>;Encrypt=False;Language=US_English"
}
}Para fazer a leitura da ConnectionString dentro do código do programa, vamos instanciar um objeto da classe IConfiguration da seguinte forma:
namespace Treino_REST_02.Controllers
{
[Route("api/Dados")]
[ApiController]
public class DadosController : ControllerBase
{
IConfiguration Config;
public DadosController(IConfiguration _config)
{
this.Config = _config;
}Apesar de a referência para IConfiguration ser passada no construtor, observe que instanciei o objeto “Config” no nível da classe e não dentro do método construtor. Dessa forma, “Config” pode ser chamado por qualquer método do programa. Para ler a string de conexão agora basta utilizar o método “Config.GetConnectionString()” como no exemplo abaixo:
Cn.ConnectionString = Config.GetConnectionString("cnMain");
Outra forma de fazer a leitura da string de conexão sem precisar deixar um objeto instanciado é essa abaixo, porém tenho a impressão que este método demanda mais recursos computacionais. Ainda farei uma pesquisa sobre o assunto para chegar à uma conclusão final.
var cnStr = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build().GetSection("ConnectionStrings")["cnMain"];
Cn.ConnectionString = cnStr;
Agora que já sabemos como armazenar e ler uma string de conexão, o próximo passo é utilizá-la para efetivamente acessar bancos de dados.
