Pular para o conteúdo principal

Entity Framework: Fazendo um CRUD básico

O que é o Entity Framework

    O Entity Framework é um framework de mapeamento de objeto-relacional (ORM) desenvolvido pela Microsoft. Ele permite o trabalho com o banco de dados usando objetos do código, desta forma, não existe a necessidade de interação com o banco de dados utilizando a linguagem Sql.

    O Entity é utilizado na plataforma de desenvolvimento .Net, criada pela Microsoft e que utiliza as linguagens de programação C# e Visual Basic.

    Entity Framework possui a capacidade de trabalhar com diferentes bancos de dados, por exemplo SQL Server, MySQL, Oracle, Sqlite, entre outros e traz vantagens de produtividade para o desenvolvimento, pois é muito rápido trabalhar com o banco de dados utilizando esse plataforma.


Projeto do CRUD

    Nesse post criaremos um CRUD (create, read, update, delete), uma aplicação básica de agenda telefônica, utilizando as tecnologias do C#, Entity Framework e banco de dados SQL Server. Na aplicação de agenda telefônica será possível gravar novos contatos, alterar e deletar cadastro antigos e por fim consultar esses registros. Como ferramenta de desenvolvimento vamos utilizar o Visual Studio Code 2022.


Iniciar projeto e preparar ambiente

    Abra o Visual Studio Code e selecione a opção criar novo projeto.


    Escolha o tipo de projeto Console App.


    Escolha o local e o nome do projeto.


    Neste post, usaremos o .Net versão 6.0.


Instalando o Entity Framework

    Com o projeto criado, um importante primeiro passo é instalar o Entity Framework no projeto, para realizar esta operação devemos abrir o “Package Manager Console”.


    Com o terminal do Package Manager aberto, digite os seguintes comandos:

        Install-Package Microsoft.EntityFrameworkCore.SqlServer

    e

        Install-Package Microsoft.EntityFrameworkCore.Tools


O projeto

    Com o projeto criadoa e pacotes instalados, vamos inciar o projeto. Primeiro passo é criar a classe principal do projeto, para isso edite o arquivo “Program.cs”, conforme abaixo.


    Esse arquivo é ponto de inicial da aplicação. Agora precisamos criar a classe de configuração e conexão com o banco de dados, para isso clique no projeto com o botão direito do mouse e escolha a opção no Add -> New Item....


    Escolha um arquivo tipo 'class' e nomeie este arquivo como ContatoContext.cs, insira o seguinte código nessa classe.


    Essa classe é responsável pela conexão com o banco de dados, ela recebe a herança da classe DbContext que é uma classe do Entity Framework. Para realizar a conexão com o banco utilizamos o método Onconfiguring, com a propriedade optionsBuilder junto com a string de conexão. Os pontos importantes na string de conexão são o seguinte:

.UseSqlServer("Server=NomeServidorlocal\\SQLEXPRESS;
Database=NomeDoBancoDados;
UserId=UsuárioBanco;Password=SenhaUsuárioBanco;
TrustServerCertificate=True");

    Nesse momento é importante colocar as credências de acordo com as configurações de instalação do SQL Server. Para instruções de como instalar o SQL Server corretamento, verifique o canal do Youtube da Bóson Treinamentos, ele possuí um exelente vídeo sobre a instalação do SQL Server, link do vídeo.

    Feita a configuração, nós vamos trabalhar na model, que é a representação no código da tabela no banco de dados. Para essa aplicação vamos utilizar somente uma tabela chamada de Contatos, a tabela Contatos possuirá duas colunas de dados (nome e telefone) e uma coluna de chave primária (id). Para essa represtação vamos criar um novo arquivo chamado Contato.cs, e inserir o seguinte código.



    Nesta classe temos três atributos, id do tipo inteiro, nome do tipo string, e telefone também do tipo string. Utilizei o DataAnnotations do Entity Framework, que é uma boa prática, não entraremos em detalhes sobre esse módulo. Para saber mais consulte a documentação da Microsoft, no link https://learn.microsoft.com/en-us/ef/ef6/modeling/code-first/data-annotations. Após criar a classe das tabelas vamos criar o ContatoDAO, que é a classe responsável por declarar os métodos para criação, leitura, atualização e exclusão de dados da tabela (create, read, update, delete), para essa classe inserimos o seguinte código.


    Na classe ContatoDAO existem os métodos Adicionar, Atualizar, Contatos() e Remover. Esses métodos serão utilizados para a interação com o banco de dados.
    Agora vamos registrar o modelo da tabela Contatos no ContatoContext, para fazer isso baste inserir a seguinte linha de código na classe ContatoContext.cs.


    Agora estamos prontos para fazer a criação do banco de dados, para realizar esse processo precisamos fazer uma migração, acesse o terminal do Package Manager e rode o seguinte comando.


    Este comando vai preparar as alterações necessárias no banco de dados e criara um script de atualização, neste momente é possível verificar se as alterações estão conforme o esperado, e caso necessário, realizar alterações. Se tudo estiver correto, pode rodar o comando de atualização do banco de dados.


    Caso tudo ocorra sem erros, nós podemos verificar as alterações feitas no banco, para isso é possível realizar a consulta com o Microsoft SQL Management Studio ou utilizar o Visual Studio Code. Para consultar utilizando o Vsual Studio Code, abra o SQL Server Object Expleror.


    Abra o banco de dados criado, nele existem duas tabelas, a Contatos e outra, criada pelo Entity Framework, chamada _EFMigrationsHistory que faz o registro das migrações efetuadas.


    Com a migração feita, podemos utilizar o sistema para manipular doados no Banco de Dados. Primeiro vamos incluir 3 novos contatos na tabela Contatos, para realizar esse processo, vamos editar a classe Program.cs, inserindo o código abaixo.


    Rodando o sistema com ctrl+f5, o programar vai esses 3 contatos (Daniel, João e Maria). Podemos verificar no banco se as informações foram salvas utilizando o SQL Server Object Expleror, basta clicar na tabela com o botão direito do mouse e na opção View Data.



    Mas também possuimos o método de consulta no banco de dados, então podemos também no programa, chamar o método de consulta, então vamos comentar o método adicionar, e criar a consulta.



    Para atualizar as informações de um registro, utilizamos o método Atualizar.


    Primeiro buscamos no banco o primeiro contato, utilizando o contexto.

var contato = contexto.Contatos().First();

Na sequencia, alteramos o nome do contato e atualizamos os dados.

contato.Nome = "Jurandir";
contexto.Atualizar(contato)

E finalizando podemos excluir um cadastro do banco de dados, utilizando o método Remover.



Conclusão

    Entity Frameworké uma ferramento muito poderesa, que facilita muita o desenvolvimento de aplicações com utilização de banco dados. Esse tutorial é bastante básico, pois a plataforma permite grande personalização e possui muitas caracteriscas, por exemplo o relacionamente entre tabelas. Espero que esse post posso ajuda-ló, qualquer dúvida, deixe uma pergunta na seção de comentários. A integra do projeto está no GitHub no link.

Um abraço e até mais.

Comentários

Postagens mais visitadas deste blog

Gerenciando Dependências no Python com requirements.txt

O que é o Pip? O Pip  (Package Installer for Python) é o gerenciador de pacotes do Python. Ele permite instalar, atualizar e remover bibliotecas e dependências de forma prática, garantindo que seu ambiente esteja sempre configurado corretamente. Como gerar um arquivo requirements.txt? Quando trabalhamos em projetos Python, muitas vezes precisamos garantir que todas as dependências necessárias estejam instaladas. Para facilitar essa gestão, podemos gerar um arquivo requirements.txt que contém a lista de pacotes e versões utilizadas no ambiente. Para gerar esse arquivo, execute o seguinte comando no terminal: pip freeze > requirements.txt Esse comando captura todas as bibliotecas instaladas no ambiente e as salva no arquivo requirements.txt . Geralmente trabalhamos com um ambiente virtual, o que é uma boa prática. Como instalar dependências a partir do requirements.txt? Se você precisa configurar um novo ambiente ou compar...

Aprenda Pandas utilizando exemplos de SQL e vice e versa (select, insert, update e delete)

O que é o Pandas? O Pandas é uma biblioteca open source do Python, criada para a função de análise de dados. Suas funções incluem limpeza, tratamento e análise exploratória de dados (EDA). É uma biblioteca muito utilizada para o trabalho de Machine Learning e Data Science, porém sua utilidade vai muito além disso, sendo uma ferramenta poderosa para programadores ou profissionais que lidam com grandes conjuntos de dados. Eu utilizo muito o Pandas para conferência de relatórios e bases de dados, e considero uma ferramenta muito útil, por exemplo, para profissionais de finanças, contabilidade, etc. Funcionamento do Pandas O funcionamento do Pandas está centrado em DataFrames, que são objetos para estruturar dados, algo parecido com uma planilha. Os dados são importados para um DataFrame, e as fontes de dados pode ser de diversos tipos, por exemplo: Excel Json SQL HTML Google Sheets A liberdade que o P...

Como Vencer a Procrastinação e Estudar Tecnologia com Foco (Serve Para Qualquer Tema!)

Como Vencer a Procrastinação e Estudar Tecnologia com Foco O tópico sobre estudar de forma eficiente sempre foi um interesse meu. Trabalhando na área de tecnologia essa necessidade aumentou, pois a área está em constante mudança e precisamos nos manter atualizados. A inspiração para escrever um artigo sobre esse tema veio de uma leitura recente, o livro Ultra-aprendizado , do autor Scott Young. O tema do livro é sobre como estudar de forma eficiente, no capítulo 5 o autor mostra estratégias para resolver problemas comuns durante uma sessão de estudos e um dos problemas tratados é a procrastinação. Durante a leitura deste livro eu fiz várias correlações com outro livro que li, o livro Hábitos Atômicos , do autor James Clear. A intenção deste artigo não é taxar pessoas como preguiçosas. No mundo em que vivemos a quantidade de tempo disponível para o lazer e estudo não é igual para todos os indivíduos, algumas pessoas simplesmente não têm tempo para dedicar aos estudos. Este artig...