Fala ai professor na aula de como criar um banco de dados e muito bom porem eu queria ver como criar esse modela do zero sem copiar e colar. Poderia me ajuar?
`
Fala ai professor na aula de como criar um banco de dados e muito bom porem eu queria ver como criar esse modela do zero sem copiar e colar. Poderia me ajuar?
`
algum dia o professor vai responder eu creio!
Opa, tudo bom Felipe?
Então, não sou professor, mas gostaria de deixar minha opinião, talvez lhe ajude.
Bem, como sabemos, o Entity Framework (EF) surgiu para que a modelagem de banco de dados fosse facilmente implementada via aplicação. Ou seja, acredito que a direção que o curso de MVC com EF Core seja direcionado a utilização dessa ferramenta na aplicação.
Você pode aprender utilizar o EF6 e o EF Core pelo próprio site da Microsoft, através do link:
https://docs.microsoft.com/pt-br/ef/core/
Agora, caso esteja procurando como é que se criam as tabelas, campos e relacionamentos. Recomendo verificar a sessão de Infraestrutura nos cursos de bancos de dados.
Espero ter contribuído.
até mais.
Oi Filipe, tudo bem?
Então vamos lá: Considerando que cada entidade é descrita como abaixo:
Com base nessas informações, dá pra montar uma classe para cada entidade.
Cada entidade terá um grupo de propriedades, sendo que os Ids são numéricos (tipo int, mas também poderia ser long).
Os valores do tipo moeda são declarados sempre com o tipo decimal, pois é um tipo numérico de ponto flutuante de maior precisão, e com representação decimal, o que evita problemas de arredondamento de dígitos decimais.
Como cada entidade tem uma propriedade chamada Id, o Entity Framework automaticamente pressupõe que essa propriedade é a chave primária da tabela gerada no processo "model-first".
Para evitar duplicação de código, movemos a propriedade Id para uma classe base abstrata, e fazemos com que cada entidade herde dessa classe.
Cada classe tem um construtor vazio e um outro construtor com os parâmetros mapeados para as propriedades. Isso facilita a inicialização dos objetos das classes.
Alguns campos (muitos, na verdade) possuem um atributo [Required], instruindo o Entity Framework a criar esses campos como "obrigatórios". Assim, esses campos não permitirão valores nulos, protegendo a integridade dos nossos dados.
Alguns campos são do tipo de alguma outra classe do modelo. Isso é feito para estabelecer um relacionamento entre as tabelas (e entidades) quando as tabelas forem geradas a partir do modelo:
public class Cadastro : BaseModel
{
...
public virtual Pedido Pedido { get; set; }
public class ItemPedido : BaseModel
{
...
[Required]
public Pedido Pedido { get; private set; }
[Required]
public Produto Produto { get; private set; }
...
public class Pedido : BaseModel
{
[Required]
public virtual Cadastro Cadastro { get; private set; }
}
[CONTINUA...]
[CONTINUAÇÃO...] Acho que é isso. O modelo é bastante simples, para não termos muita complicação na hora de desenvolver o app com ASP.NET Core e Entity Framework Core.
[DataContract]
public abstract class BaseModel
{
[DataMember]
public int Id { get; protected set; }
}
public class Produto : BaseModel
{
public Produto()
{
}
[Required]
public string Codigo { get; private set; }
[Required]
public string Nome { get; private set; }
[Required]
public decimal Preco { get; private set; }
public Produto(string codigo, string nome, decimal preco)
{
this.Codigo = codigo;
this.Nome = nome;
this.Preco = preco;
}
}
public class Cadastro : BaseModel
{
public Cadastro()
{
}
public virtual Pedido Pedido { get; set; }
[Required]
public string Nome { get; set; } = "";
[Required]
public string Email { get; set; } = "";
[Required]
public string Telefone { get; set; } = "";
[Required]
public string Endereco { get; set; } = "";
[Required]
public string Complemento { get; set; } = "";
[Required]
public string Bairro { get; set; } = "";
[Required]
public string Municipio { get; set; } = "";
[Required]
public string UF { get; set; } = "";
[Required]
public string CEP { get; set; } = "";
}
public class ItemPedido : BaseModel
{
[Required]
public Pedido Pedido { get; private set; }
[Required]
public Produto Produto { get; private set; }
[Required]
public int Quantidade { get; private set; }
[Required]
public decimal PrecoUnitario { get; private set; }
public ItemPedido()
{
}
public ItemPedido(Pedido pedido, Produto produto, int quantidade, decimal precoUnitario)
{
Pedido = pedido;
Produto = produto;
Quantidade = quantidade;
PrecoUnitario = precoUnitario;
}
}
public class Pedido : BaseModel
{
public Pedido()
{
Cadastro = new Cadastro();
}
public Pedido(Cadastro cadastro)
{
Cadastro = cadastro;
}
public List<ItemPedido> Itens { get; private set; } = new List<ItemPedido>();
[Required]
public virtual Cadastro Cadastro { get; private set; }
}
Tudo começa com as ideias. Para criar um modelo do zero, comece descrevendo as especificações do seu domínio, isto é, que entidades e valores são necessários para o início do seu projeto. Adapte as ideias para modelar as classes. Crie uma migração inicial, como fizemos no curso, e depois vá incrementando o modelo e as migrações adicionais conforme seu projeto vai crescendo.
Você pode também assistir o curso do prof. Daniel Portugal da Alura, que explica bem melhor sobre a criação de modelos, tabelas e relacionamentos com o Entity Framework Core:
https://www.alura.com.br/curso-online-entity-framework-core
Qualquer dúvida, por favor me avise. Um abraço!