Operações CRUD com Entity Framework

No post “ADO.NET Entity Framework – Introdução + Exemplo prático” comentamos um pouco sobre a teoria do Entity Framework, demonstramos como criar o modelo conceitual (Entity Data Model – EDMX) e também como utilizá-lo através do Entity Data Source em aplicações sem escrita de código fonte, ou seja, montadas a partir dos assistentes do próprio Visual Studio.

Neste post demonstro como utilizar o Entity Framework, via codificação, para realizar operações CRUD em um exemplo didático que utiliza o Banco de Dados Northwind e as tabelas Region e Territories, já devidamente mapeadas (objeto relacional) no exemplo citado no parágrafo anterior (Acesse o post anterior antes de continuar neste).

Exemplos de métodos

1) Inclusão/Alteração


protected void btnGravar_Click(object sender, EventArgs e)
{
   //Criando o contexto de acordo com o Entity Data Model
   using (NorthwindEntities contexto = new NorthwindEntities())
   {
      try
      {
         Territories t;
         if (btnGravar.Text == "Gravar") //Se for um novo registro
            t = new Territories(); //Criamos um novo território
         else
            t = (from t1 in contexto.Territories where t1.TerritoryID == txtIdentificacao.Text select t1).First(); //Se não, recuperamos o território que será alterado

         //Adicionando ou alterando as informações do território
         t.RegionID = Convert.ToInt32(ddlRegiao.SelectedValue);
         t.TerritoryID = txtIdentificacao.Text.Trim();
         t.TerritoryDescription = txtDescricao.Text.Trim();

         if (btnGravar.Text == "Gravar") //Se for um novo registro, adicionamos ao contexto, senão apenas gravamos as alterações
            contexto.Territories.AddObject(t);

         //Nessário para confirmar as ações junto ao contexto
         contexto.SaveChanges();

         Mensagem("Operação realizada com sucesso.");
      }
      catch (Exception ex)
      {
         Mensagem("Erro: " + ex.Message);
      }
   }
}


2) Localização de Registros


protected void btnLocalizar_Click(object sender, EventArgs e)
{
   //Criando o contexto de acordo com o Entity Data Model
   using (NorthwindEntities contexto = new NorthwindEntities())
   {
      try
      {
         //Recuperando um determinado registro/objeto
         Territories t = (from t1 in contexto.Territories where t1.TerritoryID == txtIdentificacao.Text select t1).First();

         //Populando elementos de tela com os dados recuperados
         ddlRegiao.SelectedValue = t.RegionID.ToString();
         txtIdentificacao.Text = t.TerritoryID;
         txtDescricao.Text = t.TerritoryDescription;

         txtIdentificacao.ReadOnly = true;
         btnGravar.Text = "Alterar";
         btnExcluir.Enabled = true;
      }
      catch (Exception ex)
      {
         Mensagem("Erro: " + ex.Message);
      }
   }
}

3) Exclusão


protected void btnExcluir_Click(object sender, EventArgs e)
{
   //Criando o contexto de acordo com o Entity Data Model
   using (NorthwindEntities contexto = new NorthwindEntities())
   {
   try
      {
         //Recuperando um determinado registro/objeto
         Territories t = (from t1 in contexto.Territories where t1.TerritoryID == txtIdentificacao.Text select t1).First();

         //Excluindo o registro/objeto e salvando as alterações no contexto/BD
         contexto.Territories.DeleteObject(t);
         contexto.SaveChanges();

         Mensagem("Registro excluído.");
      }
      catch (Exception ex)
      {
         Mensagem("Erro: " + ex.Message);
      }
      finally
      {
         FormularioInicial();
      }
   }
}


Caso queira, clique aqui para fazer o download completo deste exemplo

Grande abraço,
Eduardo Henrique Rizo

[twitter-follow screen_name='eduardorizo' show_count='yes']

8 comentários em “Operações CRUD com Entity Framework”

  1. Pingback: ADO.NET Entity Framework – Introdução + Exemplo prático « Blog do Eduardo H. Rizo

  2. Pingback: LINQ e Entity Framework « Blog do Eduardo H. Rizo

  3. Pingback: LINQ, Entity Framework e Tipos Anônimos « Blog do Eduardo H. Rizo

  4. Pingback: WebServices, LINQ e Entity Framework (EF4) « Blog do Eduardo H. Rizo

Deixe um comentário