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

NotImplementedException();

Boa noite pessoal, tudo bem?

Estou com um erro que nao consigo nem ao menor contornar ele para seguir o curso, no final deste video o professor comenta sobre o metodo "remove" utilizando esse comando para demontrar.

using (var contexto = new LojaContext())
            {
                var serviceProvider = contexto.GetInfrastructure<IServiceProvider>();
                var loggerFactory = serviceProvider.GetService<ILoggerFactory>();
                loggerFactory.AddProvider(SqlLoggerProvider.Create());



                //contexto.Promocoes.Add(promocaoDePascoa);
                var promocao = contexto.Promocoes.Find(3);
                contexto.Promocoes.Remove(promocao);
                contexto.SaveChanges();

            }

Porem quando eu o executo ele acaba travando tudo a´te finalizando a soluçao, alguem ja infrentou esse erro?

9 respostas

Boa noite, adiantando o pedido, segue o link do projeto no google drive

https://drive.google.com/drive/folders/1b-l9OLOO5goKqrXQvu5gzqgIk8-_U77s

Olá Isac, tudo certo?

Tentei rodar seu projeto, mas não deu certo. Tem como você zipar a pasta toda antes de compartilhar?

Por mais que tenha o arquivo .csproj, ainda assim, não consigo instalar dependências, executar, fazer build, restore.

No aguardo!

Boa noite Fabiano, tudo bem?

https://drive.google.com/open?id=1JEjizt4nLAXeUqgBAwLl9EPnE2jS49R4

segue o link do projeto em rar, desde ja muito obrigado

Olá Isac!

Deu trabalho para conseguir fazer tudo funcionar perfeitamente. Quando for compartilhar seu projeto, compartilhe também com o arquivo .sln (esse deu um trabalho para conseguir acertar ele e fazer a migração).

Vamos lá, se o erro que está tomando é o System.ArgumentNullException é por causa que o parâmetro que está passando no método Find() não existe no seu banco de dados. Aqui, para conseguir fazer funcionar, tive que alterar para var promocao = contexto.Promocoes.Find(1);, porque foi o primeiro cadastro de promoção que fiz e o Id da tabela Promocoes era 1.

Então, sugiro que olhe na sua tabela Promocoes no seu banco de dados e faça o teste com o valor do Id que aparece. Se já foi deletado uma vez o Id 3, ele não vai funcionar novamente.

Espero ter ajudado, mas se não for este erro, preciso de mais informações.

Bons estudos!

Boa tarde Fabiano, primeiro muito obrigado pela ajuda kkkk, irei verificar certinho e logo te retorno!!! desde já agradeço até sábado no evento!!!

solução!

Nossa, agora vi o título da dúvida.

Vamos lá, a exceção NotImplementedException acontece justamente por causa que o método não foi implementado e o que o método faz é simplesmente lembrar que não foi implementado. Mais informações aqui.

O que fiz para funcionar foi simplesmente comentar os dois métodos que lançam essa exceção:

A outra solução é implementar os métodos :)

Acho que desta vez consegui ajudar. Bons estudos!

Fala meu querido, tudo certo?

Então, eu enfrentei esse problema, e vou te dar umas dicas de como resolver:

Primeiramente, percebi que você argumentou seu método Find igual o código do Professor Daniel, nem sempre vai ser igual, pois a chave primária da tabela PromocaoProduto do Prof. era 3, a sua pode ser diferente. A minha por exemplo era 1018, então argumentei o código com 1018.

E segundo, sua aplicação pode estar rodando DUAS vezes, isso é crucial para a execução desse conjunto de código que você colocou. Ou seja, ele roda uma vez, sai, e depois roda de novo. Isso acontece por conta do anti-vírus. O que eu fiz foi excluir meu anti-vírus, que era o AVG.

Espero ter ajudado. Abraços!

Bom dia todos!!

Então Lucas, é esta situação mesmo, de executar duas vezes porem isso já foi resolvido, agora quanto ao "Id" preciso testar, pois quando eu rodo aqui ele não esta trazendo o Id, ficando "null" e se caso eu tento atribuir na força o Id ele volta naquela mesma estrutura de erro porem antes trazendo a instrução de insert do sql, estou verificando e log retorno, mas valeu pela dica.

Bom dia, Isac. Na tabela PromocaoProduto contém alguma promoção? Pois você rodando o código mesmo dando a exceção vai excluir a promoção na tabela.

Então, se esse for o caso, adiciona a tabela novamente e depois chama o método Find de novo.