Fórum (C Sharp + Entity Framework) Porque o código está salvando duas pessoas? #588701
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
Gostei + 3
Clique aqui para fazer login e interagir na Comunidade :)