Pq exatamente tivemos que adicionar uma propriedade do tipo FilmeContext no construtor do nosso controlador? Não poderíamos seguir com a utilização do FilmeContext mas sem ter colocado ele no construtor?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Pq exatamente tivemos que adicionar uma propriedade do tipo FilmeContext no construtor do nosso controlador? Não poderíamos seguir com a utilização do FilmeContext mas sem ter colocado ele no construtor?
Olá, Miguel! Tudo joia?
A propriedade do tipo FilmeContext foi adicionada no construtor do controlador para permitir a injeção de dependência do contexto do banco de dados. Isso significa que o controlador agora depende do contexto para acessar e manipular os dados do banco.
Ao adicionar o FilmeContext no construtor, estamos garantindo que sempre teremos uma instância válida do contexto disponível para ser utilizada nos métodos do controlador. Sem essa injeção de dependência, não seria possível acessar o contexto e realizar operações no banco de dados.
Por exemplo, no método AdicionarFilme, utilizamos o contexto para adicionar o filme no banco de dados:
[HttpPost]
public IActionResult AdicionarFilme([FromBody] Filme filme)
{
_context.Filmes.Add(filme);
_context.SaveChanges();
return CreatedAction(nameof(RecuperaFilmePorId),
new { id = filme.Id },
filme);
}
Sem a injeção do FilmeContext no construtor, não teríamos como acessar o _context e realizar a operação de adicionar o filme no banco.
Então, é necessário adicionar o FilmeContext no construtor para que o controlador tenha acesso ao contexto do banco de dados e possa realizar as operações necessárias.
Para mais informações veja: Injeção de dependência no ASP.NET Core
Espero ter esclarecido sua dúvida! Se tiver mais alguma pergunta, é só me dizer.
Bons estudos!
Opa, Armano! Bem completa sua resposta, muito obrigado :)