Sobes.tech
Junior — Middle

Como atualizar um campo específico num grupo de objetos relacionados no Entity Framework?

sobes.tech IA

Resposta da IA

Para atualizar um campo específico num grupo de objetos relacionados no Entity Framework, pode usar várias abordagens:

  • Carregar objetos relacionados e atualizar na memória:

    var parent = context.Parents.Include(p => p.Children)
                                .FirstOrDefault(p => p.Id == parentId);
    foreach(var child in parent.Children)
    {
        child.SomeField = newValue;
    }
    context.SaveChanges();
    

    Este método é conveniente se precisar atualizar o campo em todos os objetos relacionados.

  • Atualização em massa usando ExecuteSqlCommand ou ExecuteUpdate (EF Core 7+):

    context.Children
           .Where(c => c.ParentId == parentId)
           .ExecuteUpdate(c => c.SetProperty(child => child.SomeField, newValue));
    

    Essa abordagem é eficiente, pois atualiza os dados diretamente na base de dados sem carregá-los na memória.

A escolha depende da versão do EF e dos requisitos de desempenho.