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

Por que não tem o .WithOne()?

Em relação à aula 03, no vídeo "Relacionamentos de Migrações", porque o seguinte trecho de código não tem o .WithOne()?

            modelBuilder.Entity<Cadastro>().HasKey(t => t.Id);
            modelBuilder.Entity<Cadastro>().HasOne(t => t.Pedido);

            modelBuilder.Entity<ItemPedido>().HasKey(t => t.Id);
            modelBuilder.Entity<ItemPedido>().HasOne(t => t.Pedido);
            modelBuilder.Entity<ItemPedido>().HasOne(t => t.Produto);

Obrigado.

2 respostas
solução!

Olá Cícero, tudo certo?

Na tabela ItemPedido não é usado, porque é uma tabela de agregação, que no fim das contas é necessário criar uma tabela "de Join" para fazer a associação de muitos para muitos. Então essa tabela não vai precisar agregar mais dados nem para Itens, nem para Pedidos. A mesma coisa ocorre com cadastro.

Porém, para a tabela Pedidos, que seria a tabela "principal", onde irá agregar a qual cadastro do usuário que fez esse pedido e quais itens compõe este pedido.

Para fazer um pedido, é necessário amarrar esse pedido a um cadastro e os itens no carrinho. Para adicionar itens no carrinho, pode fazer deslogado. Para cadastrar um usuário novo não é necessário ter algum item no carrinho.

Bom, espero ter ajudado!

Perfeita a explicação. Obrigado. :-)