none
Fazer Update em Varias tabelas Entity Framework RRS feed

  • Pergunta

  • Bom dia!

    Pessoal estou com uma duvida que pode ser simples para alguns desenvolvedores...

    tenho as Seguintes tabelas:

    TBL_Pessoa: (Campos): ID_Pessoa(PK),Nome,DataNascimento,COD_Endereco(FK),CODTelefone(FK)

    TBL_Endereco: (Campos): ID_Endereco(PK),NomeRua,Numero,Complemento

    TBL_Telefone: (Campos): ID_Telefone(PK),Telefone_Fixo,Telefone_Movel

    Todas as tabelas estão relacionadas....

    Agora precisando fazer um update e um delete de todas tabelas ao mesmo tempo, pois os campos estão no mesmo formulário...

    OBS: O insert consegui certinho.....


    Heberson Sabino heberson.ti@hotmail.com

    terça-feira, 2 de abril de 2013 12:19

Respostas

  • Bom dia Considerando que você está usando algum ORM como exemplo o Entity Framework

    Seria Assim :

    private void AtualizarTudo(Pessoa P,Endereco E,Telefone T)
    {
    
    // Leve em considerações que as classes de parametros já estão preenchidas
    
     var TblPessoa = QueryBanco.Pessoa.Find(P.ID_Pessoa);
     var TblEndereco = QueryBanco.Endereco.Find(E.ID_Endereco);
     var TblTelefone = QueryBanco.Telefone.Find(T.ID_Telefone);
    
    // Acima você já irá pegar o que tem de atual e 
    // agora abaixo irá trocar pelo novo
      
    TblPessoa.Nome = P.Nome;
    TblEndereco.NomeRua = E.NomeRua;
    TblTelefone.Telefone_Fixo = T.Telefone_Fixo
    
    QueryBanco.Entry<Pessoa>(TblPessoa).State = System.Data.EntityState.Modified;
    
    
    
    QueryBanco.Entry<Endereco>(TblEndereco).State = System.Data.EntityState.Modified;
    
    
    
    QueryBanco.Entry<Telefone>(TblTelefone).State = System.Data.EntityState.Modified;
    
    
    
    
    
    QueryBanco.SaveChanges();
    
    // A linha acima Atualiza todos 
    // Caso Fosse deletar poderia trocar de System.Data.EntityState.Modified para System.Data.EntityState.Deleted mas é claro que a logica mudaria pegando apenas o ID das classes pelo find
    
    
    
    
    
    
    
    }
    Espero ter ajudado.

    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br

    terça-feira, 2 de abril de 2013 12:39

Todas as Respostas

  • Bom dia Considerando que você está usando algum ORM como exemplo o Entity Framework

    Seria Assim :

    private void AtualizarTudo(Pessoa P,Endereco E,Telefone T)
    {
    
    // Leve em considerações que as classes de parametros já estão preenchidas
    
     var TblPessoa = QueryBanco.Pessoa.Find(P.ID_Pessoa);
     var TblEndereco = QueryBanco.Endereco.Find(E.ID_Endereco);
     var TblTelefone = QueryBanco.Telefone.Find(T.ID_Telefone);
    
    // Acima você já irá pegar o que tem de atual e 
    // agora abaixo irá trocar pelo novo
      
    TblPessoa.Nome = P.Nome;
    TblEndereco.NomeRua = E.NomeRua;
    TblTelefone.Telefone_Fixo = T.Telefone_Fixo
    
    QueryBanco.Entry<Pessoa>(TblPessoa).State = System.Data.EntityState.Modified;
    
    
    
    QueryBanco.Entry<Endereco>(TblEndereco).State = System.Data.EntityState.Modified;
    
    
    
    QueryBanco.Entry<Telefone>(TblTelefone).State = System.Data.EntityState.Modified;
    
    
    
    
    
    QueryBanco.SaveChanges();
    
    // A linha acima Atualiza todos 
    // Caso Fosse deletar poderia trocar de System.Data.EntityState.Modified para System.Data.EntityState.Deleted mas é claro que a logica mudaria pegando apenas o ID das classes pelo find
    
    
    
    
    
    
    
    }
    Espero ter ajudado.

    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br

    terça-feira, 2 de abril de 2013 12:39
  • Obrigado pela resposta,

    não entendi essa queryBanco...


    Heberson Sabino heberson.ti@hotmail.com

    terça-feira, 2 de abril de 2013 21:28
  • Essa QueryBanco seria a classe de repositório Context do seu ORM no caso o meu exemplo sera com o ORM Entity Framework Code First .

    Entendeu ?


    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br

    quarta-feira, 3 de abril de 2013 00:06
  • entedi sim,

    obrigado pela ajuda.....


    Heberson Sabino heberson.ti@hotmail.com

    quarta-feira, 3 de abril de 2013 21:34