none
Entity Framework 5 - Add or Update RRS feed

  • 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!


    domingo, 8 de setembro de 2013 16:27

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
    segunda-feira, 9 de setembro de 2013 03:19

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
    segunda-feira, 9 de setembro de 2013 03:19
  • Muito obrigado! Problema resolvido com injeção de dependência.
    segunda-feira, 9 de setembro de 2013 03:50