Olá, saxiro
https://cursos.alura.com.br/course/webapp-com-aspnet-core-2/task/37845
Nesse vídeo, explicamos que cada classe do modelo:
- possui um atributo (propriedade)
Id, que servirá de chave primária para a entidade - cada classe herda da classe-base
BaseModel, que contém a propriedade Id comum a todas as classes - propriedades de navegação, que fazem associação entre uma classe a outra
- cada classe representa uma tabela a ser criada no banco de dados relacional (Sql Server)
Note que nesse vídeo não explicamos os atributos (anotações) feitas no código das classes do modelo, como [Required], [DataContract] e [DataMember]. Também não explicamos como são feitas as propriedades de navegação do modelo. Esses detalhes serão explicados mais pra frente no curso.
Id: por padrão, a propriedade com esse nome se torna a chave primária da tabela gerada[Required]: indica que o campo (coluna) será criado no banco de dados como não-nulo (NOT NULL)[DataContract]: garante que a classe é serializável, isto é, ela pode ser transformada em dados JSON/XML e vice-versa[DataMember]: garante que o atributo (propriedade) é serializável, isto é, ele pode ser transformado em dados JSON/XML e vice-versa- Propriedades de Navegação: pode gerar ao mesmo tempo a chave estrangeira e também permite "navegar" de uma entidade para a outra, sem necessidade de realizar consultas LINQ adicionais via código C#. Por exemplo, esta propriedade na classe
Pedido...
public virtual Cadastro Cadastro { get; private set; }
... irá criar uma coluna CadastroId na tabela Pedido, e também permitirá que você acesse o Cadastro através de um Pedido no código C#, simplesmente acessando: var nome = pedido.Cadastro.Nome.