Boa noite, não consigo salvar mais de um livro no mesmo pedido. Sempre ao tentar adicionar, é criado um novo pedido mesmo com o SetPedidoId(pedido.id).
Meu código está no Github
Boa noite, não consigo salvar mais de um livro no mesmo pedido. Sempre ao tentar adicionar, é criado um novo pedido mesmo com o SetPedidoId(pedido.id).
Meu código está no Github
Oi Laís,
Faça os seguintes passos:
Altere a classe: PedidoRepository
De:
var pedido = _dbSet
.Where(p => p.Id == pedidoId)
.SingleOrDefault();
Para:
services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromSeconds(10000);
options.Cookie.HttpOnly = true;
options.Cookie.IsEssential = true;
});
Ao incluir o novo trecho de código não esqueça de incluir na classe o nameespace "using Microsoft.EntityFrameworkCore;"
Após isso re-compile a solução e teste novamente, se o problema ainda persistir inclua também o seguinte trecho de código abaixo:
Classe: Startup
De:
services.AddSession();
Para:
services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromSeconds(10000);
options.Cookie.HttpOnly = true;
options.Cookie.IsEssential = true;
});
Espero que isso ajude, eu baixei o seu código e fiz esses dois ajustes e funcionou, eu pedi para que fizesse o primeiro ajuste e testasse primeiro, devido a versão do framework, mas no meu caso tive que executar os dois cenários.
Não esqueça de marcar como resolvido, caso a solução seja essa, isso pode ajudar os demais que tiverem o mesmo problema.
Referência:
https://docs.microsoft.com/pt-br/aspnet/core/fundamentals/app-state?view=aspnetcore-5.0
Oi José,
Eu preciso modificar a variável pedido para o que? Eu modifiquei a classe Startup.cs, mas o problema ainda persiste.
Obrigada!
Oi Laís, boa noite. peço desculpas, houve um pequeno erro de "copy/past".
Altere a classe: PedidoRepository
De:
var pedido = _dbSet
.Where(p => p.Id == pedidoId)
.SingleOrDefault();
Para:
var pedido = _dbSet
.Include(p => p.Itens)
.ThenInclude(p => p.Produto)
.Where(p => p.Id == pedidoId)
.SingleOrDefault();