Usuário com melhor resposta
Validem a minha lógica por favor

Pergunta
-
Olá!!!
Criei um modelo EF (Model First) com as seguintes características:
- Clientes
- Enderecos
- Comunicacao;
- etc
Para fazer o insert estou usando a seguinte lógica (funcionou mas sempre pode melhorar com a ajuda de vocês)
TesteContainer db = new TesteContainer (); Cliente cli = new Cliente() { nome = txtNome.Text.Trim(), apelido = txtApelido.Text.Trim() }; Endereco end = new Endereco() { nome = txtEndereco.Text.Trim(), numero = txtNumero.Text.Trim(), nomeComplemento = txtComplemento.Text.Trim(), nomeBairro = txtBairro.Text.Trim(), codigoCEP = txtCEP.Text.Trim() }; db.AddObject("Cliente", cli); db.AddObject("Endereco", end); db.SaveChanges(); }
A lógica é essa ou só está funcionando por sorte?
Basta colocar as outras entidades (Comunicacao, fulano, cicrano e tudo o mais) e repetir o processo descrito acima sem problema?
Ansiosa,
Pri
Respostas
-
Então PriStoppa segue um exemplo de como eu faria veja se lhe auxilia em alguma coisa este código se encontra no botão Salvar:
using (ModeloContainer ctx = new ModeloContainer()) { Cliente cliente = new Cliente(); cliente.Nome = txtNome.Text; cliente.Email = txtEmail.Text; ctx.Cliente.AddObject(cliente); Endereco endereco = new Endereco(); endereco.Rua = txtRua.Text; endereco.Cidade = txtCidade.Text; ctx.Endereco.AddObject(endereco); ctx.SaveChanges(); }
Abraços e espero ter ajudado qualquer coisa posta ai!
Beleza de Creuza!- Marcado como Resposta PriStoppa sexta-feira, 21 de janeiro de 2011 11:27
-
Apesar do tópico já estar resolvido...
Acredito que você possa melhorar a composição dos seus EF. Como? Criando o relacionamento fisico entre Cliente x Endereço no seu banco, e consequentemente gerar as entidades também com composição.
Abs
- Marcado como Resposta PriStoppa sábado, 22 de janeiro de 2011 14:26
-
Sim, exatamente composição e agregação.
Composição, em um exemplo simples, ficaria algo como:
public class Endereco
{
public string Rua { get; set; }
public string Cidade { get; set; }
}
public class Cliente
{
public string Nome { get; set; }
public string Email { get; set; }Endereco endereco;
public Endereco Endereco
{
get
{
if (endereco == null)
endereco = new Endereco();
return endereco;
}
set { endereco = value; }
}
}
Então, uma instancia ficaria:
Cliente cliente = new Cliente();
cliente.Nome = "NOME";
cliente.Endereco.Rua = "RUA";
Claro, que esse foi um exemplo manual, mas se o banco de dados estiver com o
relacionamento físico, o EF irá gerar as suas entidades nesse mesmo modelo.
Abs- Marcado como Resposta PriStoppa domingo, 23 de janeiro de 2011 12:29
Todas as Respostas
-
-
Então PriStoppa segue um exemplo de como eu faria veja se lhe auxilia em alguma coisa este código se encontra no botão Salvar:
using (ModeloContainer ctx = new ModeloContainer()) { Cliente cliente = new Cliente(); cliente.Nome = txtNome.Text; cliente.Email = txtEmail.Text; ctx.Cliente.AddObject(cliente); Endereco endereco = new Endereco(); endereco.Rua = txtRua.Text; endereco.Cidade = txtCidade.Text; ctx.Endereco.AddObject(endereco); ctx.SaveChanges(); }
Abraços e espero ter ajudado qualquer coisa posta ai!
Beleza de Creuza!- Marcado como Resposta PriStoppa sexta-feira, 21 de janeiro de 2011 11:27
-
-
Apesar do tópico já estar resolvido...
Acredito que você possa melhorar a composição dos seus EF. Como? Criando o relacionamento fisico entre Cliente x Endereço no seu banco, e consequentemente gerar as entidades também com composição.
Abs
- Marcado como Resposta PriStoppa sábado, 22 de janeiro de 2011 14:26
-
Calcopietro,
No modelo real a ligação está feita. Aqui foi apenas um sketch. Mas adorei sua resposta por ter contribuído um pouco mais.
- Detalhe: quando você comenta sobre composição você quer dizer relacionamentos todo parte (composição e agregação) ?
- Se for gostaria e muito de um exemplo para implementar em C#.
Valeu.
-
Sim, exatamente composição e agregação.
Composição, em um exemplo simples, ficaria algo como:
public class Endereco
{
public string Rua { get; set; }
public string Cidade { get; set; }
}
public class Cliente
{
public string Nome { get; set; }
public string Email { get; set; }Endereco endereco;
public Endereco Endereco
{
get
{
if (endereco == null)
endereco = new Endereco();
return endereco;
}
set { endereco = value; }
}
}
Então, uma instancia ficaria:
Cliente cliente = new Cliente();
cliente.Nome = "NOME";
cliente.Endereco.Rua = "RUA";
Claro, que esse foi um exemplo manual, mas se o banco de dados estiver com o
relacionamento físico, o EF irá gerar as suas entidades nesse mesmo modelo.
Abs- Marcado como Resposta PriStoppa domingo, 23 de janeiro de 2011 12:29