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
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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();