Usuário com melhor resposta
Entity Framework 5 - Add or Update

Pergunta
-
Olá,
Gostaria de tirar uma duvida quanto ao entity, criei minhas entidades Usuario e Produto, e criei um metodo para salvar o usuario,
primeiro eu obtenho o usuario atraves do id da seguinte maneira:
public UsuarioEntity GetUsuarioById(int id) { using (var context = new MyProjectContext()) { return context.Usuario.Include(u=>u.Produtos).SingleOrDefault(u => u.Id == id); } }
Depois adiciono mais produtos neste usuario da seguinte maneira:
UsuarioEntity usuarioEntity = new UsuarioBusiness().GetUsuarioById(3);
usuarioEntity.Produtos.Add(new ProdutoEntity { DataAquisicao = DateTime.Now, Codigo = "694578893267546", Modelo = "Modelo Produto II" }); usuarioEntity.Produtos.Add(new ProdutoEntity { DataAquisicao = DateTime.Now, Codigo = "0932646532123", Modelo = "Modelo Produto III" });
E por fim, eu chamo o método para adicionar ou atualizar o objeto, entretanto, os novos produtos nao sao adicionados.
new UsuarioBusiness().SaveData(usuarioEntity);
public void SaveData(UsuarioEntity usuarioEntity) { using (var context = new MyProjectContext()) { context.Usuario.AddOrUpdate(usuarioEntity); context.SaveChanges(); } }
O que há de errado ?
Obrigado!
Respostas
-
Está relacionado ao DbContext. Você está usando um contexto em GetUsuarioById mas SaveData o contexto é outro, logo os dados não serão salvos. Você deve usar o mesmo contexto e chamar o SaveChanges no final para dar commit em todas as modificações!
Att,
- Marcado como Resposta Crauadams1 segunda-feira, 9 de setembro de 2013 03:49
Todas as Respostas
-
Está relacionado ao DbContext. Você está usando um contexto em GetUsuarioById mas SaveData o contexto é outro, logo os dados não serão salvos. Você deve usar o mesmo contexto e chamar o SaveChanges no final para dar commit em todas as modificações!
Att,
- Marcado como Resposta Crauadams1 segunda-feira, 9 de setembro de 2013 03:49
-