pessoas objPessoa;
DataTable dtTelefones;
DataTable dtEnderecos;
private void salvar()
{
using (EarthWorkEntities ctx = new EarthWorkEntities())
{
frame2objeto();
ctx.AddTopessoas(objPessoa);
ctx.SaveChanges();
}
}
private void frame2objeto()
{
using (EarthWorkEntities ctx = new EarthWorkEntities())
{
objPessoa = new pessoas();
//Pessoa
objPessoa.pes_cpfcnpj = textCpf.Text;
objPessoa.pes_nome = textNome.Text;
objPessoa.pes_sexo = cbSexo.SelectedIndex == 0 ? "M" : "F";
//Cliente
clientes cliente = new clientes();
cliente.cli_dt_ultima = DateTime.Now;
objPessoa.clientes.Add(cliente);
//Telefones
foreach (DataRow row in dtTelefones.Rows)
{
telefones objTelefones;
objTelefones = new telefones();
objTelefones.EntityKey = null;
objTelefones.tel_contato = row["Contato"].ToString();
objTelefones.tel_ddd = row["DDD"].ToString();
objTelefones.tel_numero = row["Numero"].ToString();
string tipo = row["Tipo"].ToString();
tipos_telefones tipo_telefone = (from t in ctx.tipos_telefones
where t.tptel_descr == tipo
select t).FirstOrDefault<tipos_telefones>();
objTelefones.tipos_telefones = tipo_telefone;
objPessoa.telefones.Add(objTelefones);
}
//Endereço
foreach (DataRow row in dtEnderecos.Rows)
{
enderecos objEnderecos;
objEnderecos = new enderecos();
objEnderecos.EntityKey = null;
objEnderecos.end_bairro = row["Bairro"].ToString();
objEnderecos.end_cep = row["CEP"].ToString();
objEnderecos.end_cidade = row["Cidade"].ToString();
objEnderecos.end_complemento = row["Complemento"].ToString();
objEnderecos.end_logradouro = row["Logradouro"].ToString();
objEnderecos.end_numero = row["Numero"].ToString();
string tipo = row["Tipo"].ToString();
tipos_enderecos tipo_endereco = (from t in ctx.tipos_enderecos
where t.tpend_descr == tipo
select t).FirstOrDefault<tipos_enderecos>();
objEnderecos.tipos_enderecos = tipo_endereco;
objPessoa.enderecos.Add(objEnderecos);
}
}
}
コマンド「AddTopessoas()」を実行すると、次のエラーが返されます。「EntityKeyプロパティは、プロパティの現在の値がnullの場合にのみ設定できます。」
テーブル:pessoas >> pessoas_telefones << telefones pessoas >> pessoas_enderecos << enderecos