1
resposta

Duvida sobre relacionamento das tabelas no curso

No caso só seria 1 para N se fosse uma lista de Categorias no casso do exercício a baixo Produto e Categoria esta 1 para 1.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá Audrey!

Entendo que a dúvida seja sobre a natureza do relacionamento entre as tabelas Produto e Categoria com base no código fornecido e na imagem que você compartilhou.

No código apresentado, cada instância de Produto possui uma referência para uma instância de Categoria, o que sugere que cada produto pertence a uma única categoria. No entanto, não há nada no código que impeça múltiplos produtos de referenciarem a mesma categoria, o que caracteriza um relacionamento de um-para-muitos (1:N).

O Entity Framework Core utiliza convenções para inferir os relacionamentos entre as entidades. Neste caso, a presença de uma propriedade de navegação do tipo Categoria na classe Produto é suficiente para que o EF Core infera que existe um relacionamento entre Produto e Categoria. Por convenção, o EF Core assume que esse relacionamento é de um-para-muitos, ou seja, uma categoria pode estar associada a vários produtos, mas um produto está associado a apenas uma categoria.

Além disso, o EF Core criará uma shadow property chamada CategoriaId na tabela de Produto para manter a chave estrangeira que referencia a tabela de Categoria. Essa shadow property é uma propriedade que existe no modelo de banco de dados do EF Core, mas não é definida explicitamente no código da classe.

Portanto, mesmo que no código pareça que há um relacionamento um-para-um, o comportamento padrão do EF Core, baseado nas convenções, é criar um relacionamento um-para-muitos, a menos que seja configurado de outra forma.

Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software