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 !