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']
Pingback: ADO.NET Entity Framework – Introdução + Exemplo prático « Blog do Eduardo H. Rizo
Sensacional…poucas linhas de código e simples…vlw
Em busca de alta produtividade…
Pingback: LINQ e Entity Framework « Blog do Eduardo H. Rizo
Pingback: LINQ, Entity Framework e Tipos Anônimos « Blog do Eduardo H. Rizo
Pingback: WebServices, LINQ e Entity Framework (EF4) « Blog do Eduardo H. Rizo
não gosto disso. Me faz perceber que programação é tão fácil quanto medicina… hahahahaha
Putz !