Quando tento aplicar Iniciar Sem Depurar o seguinte código abaixo:
//contexto.Promocoes.Add(promocaoDePascoa);
var promocao = contexto.Promocoes.Find(18);
contexto.Promocoes.Remove(promocao);
contexto.SaveChanges();
Ocorre uma exceção ao compilar:
Executed DbCommand (2ms) [Parameters=[@__get_Item_0='?'], CommandType='Text', CommandTimeout='30']
SELECT TOP(1) [e].[Id], [e].[DataInicio], [e].[DataTermino], [e].[Descricao]
FROM [Promocoes] AS [e]
WHERE [e].[Id] = @__get_Item_0
Exceção Sem Tratamento: System.ArgumentNullException: Valor não pode ser nulo.
Nome do parâmetro: entity
em Microsoft.EntityFrameworkCore.Utilities.Check.NotNull[T](T value, String parameterName)
em Microsoft.EntityFrameworkCore.DbContext.Remove[TEntity](TEntity entity)
em Microsoft.EntityFrameworkCore.Internal.InternalDbSet`1.Remove(TEntity entity)
em Alura.Loja.Testes.ConsoleApp.Program.Main(String[] args) na C:\Alura.Loja.Testes.ConsoleApp\Program.cs:linha 38
Pressione qualquer tecla para continuar. . .
E a exceção ocorre na seguinte linha:
contexto.Promocoes.Remove(promocao);
Ou seja, esse argumento do Remove, o promocao, é essa variável aqui:
var promocao = contexto.Promocoes.Find(18);
Então julgo que o problema seja o argumento desse método Find, pois a exceção é System.ArgumentNullException: Valor não pode ser nulo. O argumento desse Find pede a chave primária, porém eu peguei a chave primária da tabela:
Promocao ID Promocao ID
18 19811
18 19812
18 19813
Essa é minha tabela PromocaoProduto, e a chave primário é 18.
O que estou fazendo de errado?