none
Removing childs doesn't sincronizing before double SaveChange() asp.net core RRS feed

  • Pergunta

  • Hi guys,

    I don't know if i'm wrong on my code or it's a bug from asp.net core.

    EF only identify childs removed when i try to update and save change twice the same object, first original object and after with modified object.

        public class Blog {

            public int Id { get; set; }
            public string Nome { get; set; }
            public List<Post> Posts { get; set; }
        }

        public class Post {
            public int Id { get; set; }
            public string Nome { get; set; }
            public int IdBlog { get; set; }
            public Blog Blog { get; set; }
        }

            public DbSet<Blog> Blogs { get; set; }
            public DbSet<Post> Posts { get; set; }

        modelBuilder.Entity<Post>().ToTable("Post").HasOne(x=>x.Blog).WithMany(b => b.Posts).HasForeignKey(x=>x.IdBlog);
        modelBuilder.Entity<Blog>().ToTable("Blog");

    This not works:

        var teste = db.Blogs.AsNoTracking().Include(x => x.Posts).First();
        
        teste.Posts.RemoveAt(1);
        
        db.Update(teste);
        db.SaveChanges();

    This works:

        var teste = db.Blogs.AsNoTracking().Include(x => x.Posts).First();
        
        db.Update(teste);
        db.SaveChanges();
        
        teste.Posts.RemoveAt(1);
        
        db.Update(teste);
        db.SaveChanges();
    quinta-feira, 19 de outubro de 2017 18:49

Respostas

  • Hello, Régis Debona.

    It's a Portuguese Forum, you don't need to post in English here, but if you are really wishing to post in English, then you should post your thread here: https://social.msdn.microsoft.com/Forums/en-US/home.

    If you made a mistake, and wanted to post on PT/BR Forum, than you should explain your question in Portuguese for the community to be able to help you.

    Regards,


    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 20 de outubro de 2017 13:10
    Moderador

Todas as Respostas

  • Hello, Régis Debona.

    It's a Portuguese Forum, you don't need to post in English here, but if you are really wishing to post in English, then you should post your thread here: https://social.msdn.microsoft.com/Forums/en-US/home.

    If you made a mistake, and wanted to post on PT/BR Forum, than you should explain your question in Portuguese for the community to be able to help you.

    Regards,


    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 20 de outubro de 2017 13:10
    Moderador
  • Boa tarde,

    Por falta de retorno essa thread está encerrada.

    Se necessário, favor abrir uma nova thread.

    Atenciosamente,


    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 23 de outubro de 2017 17:34
    Moderador