1
resposta

Mudança ProdutoDAOEntity

public ProdutoDAOEntity() { this.contexto = new LojaContext(); } Recebi o erro "System.InvalidOperationException: 'No database provider has been configured for this DbContext. A provider can be configured by overriding the DbContext.OnConfiguring method or by using AddDbContext on the application service provider. If AddDbContext is used, then also ensure that your DbContext type accepts a DbContextOptions object in its constructor and passes it to the base constructor for DbContext.'"

Quando criamos uma instancia do objeto LojaContext() a responsabilidade da conexão ao banco de dados fica para quem?.

1 resposta

Olá Eriellen, tudo bem?

O que acontece é que quando criamos uma instância de LojaContext(), um objeto será criado com o construtor padrão vazio e além disso a classe só tem as propriedades do tipo DbSet<T>.

Na primeira aula é implementado a sobreposição do método OnConfiguring() e esse método que é o responsável pela conexão com o banco. Tanto que o erro que você colocou é retornado ao omitir esse método:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer("Server=(localdb)\\mssqllocaldb;Database=LojaDB;Trusted_Connection=true;")
        }

Isso tudo quer dizer que ao usar a classe LojaContext que herda de DbContext e essa aqui vai ter os meios para usar o banco de dados (a partir da string de conexão, que está dentro do método que indica qual método é referente ao banco de dados indicado).

Espero ter ajudado!