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

Erro: SqlLoggerProvider não existe no contexto atual

Copiei esse código exatamente como no vídeo, mas o Visual Studio reclama que o SqlLoggerProvider não existe no contexto atual. Onde eu deveria colocá-lo?

A dica que o VS dá é para criar a propriedade na classe program, mas no vídeo essa propriedade não aparece lá.

using (var contexto = new LojaContext())
            {
                var serviceProvider = contexto.GetInfrastructure<IServiceProvider>();
                var loggerFactory = serviceProvider.GetService<ILoggerFactory>();
                loggerFactory.AddProvider(SqlLoggerProvider.create());
//---------------------------------------------------^
            }
4 respostas
solução!

Olá Rodrigo, tudo certo?

Toda essa parte do SqlLoggerProvider é mostrado nesta atividade o uso desta classe, que era aquele código opcional.

Você pode omitir este código da chamada do logger ou então aplicar o código desta aula que citei para fazer esta parte funcionar.

Espero ter ajudado!

Então esse código não é fundamental para fazer a conexão com o banco de dados?

Conexão com banco de dados não. Ele é fundamental para mostrar o log dos comandos SQL no terminal.

A linha: using (var contexto = new LojaContext()) abre a conexão com banco de dados. Depois as alterações que acontecem com o conteúdo da variável context.Produtos, por exemplo Add() irá preparar a query e se tiver context.SaveChanges(), aí sim a query será executada, commitando os novos dados no banco de dados.

Neste post tem o código da implementação do SqlLoggerProvider, caso queira adicionar para ver os logs das queries.

Entendi. Obrigado pela ajuda :)