(C Sharp + Entity Framework) Porque o código está salvando duas pessoas?
10/11/2017
0
O objetivo é salvar a Pessoa e registrar na tabela Funcionário que também há um funcionário novo, no entanto no save abaixo estão sendo salvos dois registros com os mesmo dados exceto o idPessoa que é auto incremento.
private void btnSalvar_Click(object sender, EventArgs e) { if (VerificaSenha() == false) { MessageBox.Show("As senhas não conferem"); } else { if ((pessoa == null) && (telefone == null) && (funcionario == null)) { pessoa = new Pessoa(); telefone = new Telefone(); funcionario = new Funcionario(); int numeroTelefone = 0; pessoa.NomeCompleto = (textBoxNomeCompleto.Text).ToString(); pessoa.CPF = (textBoxCPF.Text).ToString(); pessoa.Usuario = (textBoxUsuario.Text).ToString(); pessoa.Senha = (textBoxSenha.Text).ToString(); pessoa.Email = (textBoxEmail.Text).ToString(); pessoa.FotoPessoa = null; telefone.Pessoa = pessoa; int.TryParse(textBoxTelefone.Text, out numeroTelefone); telefone.NumeroTelefone = numeroTelefone; TelefoneApplication.SalvarTelefone(telefone); if (comboBoxPerfil.SelectedItem.ToString() == "Funcionário") { pessoa.Perfil = "Funcionário"; var erroPessoa = PessoaApplication.SalvarPessoa(pessoa); if (String.IsNullOrEmpty(erroPessoa)) { MessageBox.Show("Pessoa cadastrada com sucesso!"); } else { MessageBox.Show("Houve um erro ao tentar salvar pessoa."); } funcionario.Pessoa = pessoa; funcionario.IdCargo = (short)comboBoxCargo.SelectedValue; var erroFuncionario = FuncionarioApplication.SalvarFuncionario(funcionario); if (String.IsNullOrEmpty(erroFuncionario)) { MessageBox.Show("Funcionário cadastrado com sucesso!"); } else { MessageBox.Show("Erro ao cadastrar funcionário"); } } } } }
Cesar Murilo
Curtir tópico
+ 0
Responder
Post mais votado
20/11/2017
Olá Cesar,
Não sei se já resolveu, mas o problema no seu código está na seguinte linha:
Ao salvar o telefone, ele possui uma dependência do objeto pessoa então através do seu mapeamento será salvo a pessoa e o telefone posteriormente com sua respectiva chave estrangeira.
Espero ter ajudado!
Não sei se já resolveu, mas o problema no seu código está na seguinte linha:
TelefoneApplication.SalvarTelefone(telefone);
Ao salvar o telefone, ele possui uma dependência do objeto pessoa então através do seu mapeamento será salvo a pessoa e o telefone posteriormente com sua respectiva chave estrangeira.
Espero ter ajudado!
Paulo Freitas
Responder
Clique aqui para fazer login e interagir na Comunidade :)