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
.