Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

[Dúvida] Criar classes à partir de um banco relacional é possível?

Eu achei a possibilidade de se criar uma base à partir do entity muito interessante, porém, é comum já termos uma base pertencente a um sistema legado e que por vezes pode funcionar muito bem. Nestes casos é possível fazer o trabalho inverso ao apresentado no curso, ao invés de criar a base à partir das classes desenvolvidas, podemos criar a estrutura de classes já com o CRUD?
4 respostas
solução!

Sim, é possível fazer o trabalho inverso ao apresentado no curso, ao invés de criar a base à partir das classes desenvolvidas, podemos criar a estrutura de classes já com o CRUD. Para isso, você pode usar o comando Scaffold-DbContext do Entity Framework. Este comando gerará as classes que representam suas entidades e as classes que implementam o CRUD para você.

Por exemplo, se você tiver um banco de dados chamado MyDatabase com uma tabela chamada MyTable, você pode usar o seguinte comando para gerar as classes para você:

Scaffold-DbContext MyDatabase -OutputDir MyProject

Este comando gerará as seguintes classes no diretório MyProject:

  • MyContext: Esta classe representa o contexto de dados para seu banco de dados.
  • MyEntity: Esta classe representa a entidade para sua tabela MyTable.
  • MyRepository: Esta classe implementa o CRUD para sua entidade MyEntity.

Você pode então usar essas classes para acessar seu banco de dados e manipular seus dados.

Aqui está um exemplo de como você pode usar a classe MyRepository para recuperar todas as linhas da tabela MyTable:

var entities = await myRepository.GetAllAsync();

Aqui está um exemplo de como você pode usar a classe MyRepository para inserir uma nova linha na tabela MyTable:

var entity = new MyEntity();
entity.Name = "MyName";
entity.Age = 20;
await myRepository.InsertAsync(entity);

Aqui está um exemplo de como você pode usar a classe MyRepository para atualizar uma linha na tabela MyTable:

var entity = await myRepository.GetByIdAsync(1);
entity.Name = "MyNewName";
entity.Age = 21;
await myRepository.UpdateAsync(entity);

Aqui está um exemplo de como você pode usar a classe MyRepository para excluir uma linha da tabela MyTable:

await myRepository.DeleteByIdAsync(1);

Espero que isso ajude!

Olá Claudio! tudo bom?

Contribuindo com a resposta do colega Francisco, alias obrigado por compartilhar conosco.

Sim, é possível criar as classes à partir de um banco relacional existente. Essa abordagem é conhecida como "Engenharia Reversa" e é bastante utilizada quando já temos um banco de dados legado.

Uma ferramenta muito utilizada para fazer a engenharia reversa em .NET é o Entity Framework Core Power Tools. Com essa ferramenta, você pode gerar as classes e mapeamentos correspondentes às tabelas do seu banco de dados.

Para fazer isso, você precisará instalar o Entity Framework Core Power Tools no Visual Studio e, em seguida, seguir os passos para realizar a engenharia reversa. Você pode encontrar mais informações sobre como fazer isso na documentação oficial do Entity Framework Core Power Tools.

Lembre-se de que, ao fazer a engenharia reversa, é importante revisar e ajustar as classes geradas, se necessário, para atender às necessidades específicas do seu sistema.

Espero ter ajudado e bons estudos!

Galera, obrigado pela resposta! Vou verificar e praticar este conceito!

Top! Claudio, qualquer dúvida post aqui!

Forte abraço!