1
resposta

Sobre o modelo.cs

Nesse curso vocês disponibilizam o arquivo modelo.cs... mas não fica claro se existe alguma característica especial na criação desses modelos, ou simplesmente se é pra criar as classes normalmente como criamos em qualquer projeto. tem algo de especial que deve ser colocado nessas classes para que, na hora de utilizá-las na construção do banco de dados, seja necessário??

1 resposta

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.