Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Dúvida sobre a conexão do banco de dados

Olá! Tudo bem?

Achei que o professor não detalhou muito bem a função dos comandos, assim como quando devemos usá-los e se será sempre assim... EX: Não entendi quase nada dessa linha abaixo, o que cada comando faz e etc...

builder.Services.AddDbContext<FilmeContext>(opts => opts.UseMySql(connectionString,ServerVersion.AutoDetect(connectionString)));

Uma conexão com o banco sempre será desta forma quando eu utilizar o MySql?

Sobre a classe "FilmeContext": Pq exatamente estou passando as informações do construtor para a classe base?

Abraços!

2 respostas
solução!

Olá, Miguel! Como vai?

Vamos esclarecer suas dúvidas sobre a conexão com o banco de dados e a classe "FilmeContext".

A linha de código que você mencionou é responsável por configurar a conexão com o banco de dados MySQL. Ela faz parte do método de inicialização da aplicação e é executada apenas uma vez ao iniciar o servidor. Vamos entender cada parte dela:

builder.Services.AddDbContext<FilmeContext>(opts => opts.UseMySql(connectionString,ServerVersion.AutoDetect(connectionString)));
  1. builder.Services.AddDbContext<FilmeContext>: Aqui estamos adicionando ao container de injeção de dependência do .NET um serviço do tipo DbContext com a classe FilmeContext. Isso permite que o FilmeContext seja injetado automaticamente em outros serviços ou controladores que precisem dele.

  2. (opts => opts.UseMySql(connectionString,ServerVersion.AutoDetect(connectionString))): Aqui estamos configurando o DbContext para usar o MySQL como o provedor de banco de dados. O método UseMySql recebe dois parâmetros: a string de conexão com o banco de dados e a versão do servidor MySQL. A string de conexão contém as informações necessárias para conectar ao banco de dados, como o servidor, o nome do banco de dados, o usuário e a senha. O método ServerVersion.AutoDetect(connectionString) é usado para detectar automaticamente a versão do servidor MySQL.

Em relação à sua dúvida sobre se a conexão com o banco sempre será desta forma quando utilizar o MySQL, a resposta é: em grande parte dos casos, sim. O método UseMySql é específico para o MySQL. Se você estivesse usando outro banco de dados, como o SQL Server, por exemplo, você usaria o método UseSqlServer.

Agora, sobre a classe "FilmeContext". A razão pela qual estamos passando as informações do construtor para a classe base é porque a classe DbContext precisa dessas informações para configurar o contexto do banco de dados. A classe DbContext faz parte do Entity Framework Core e é a principal classe que coordena a funcionalidade do Entity Framework para um modelo de dados. Ela é responsável por criar conexões com o banco de dados, construir comandos de banco de dados, garantir que os comandos sejam executados corretamente e muito mais.

Espero ter ajudado e bons estudos!

Muito completa sua resposta! Agradeço muito :)