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.