Junior — Middle
Como é que o Entity Framework determina que uma propriedade específica de um objeto foi alterada?
sobes.tech IA
Resposta da IA
O Entity Framework acompanha as alterações nas propriedades dos objetos através de um mecanismo chamado Rastreamento de Alterações (Change Tracking). Quando um objeto é carregado da base de dados, o EF guarda o seu estado original. Ao chamar o método SaveChanges(), o EF compara o estado atual do objeto com o estado original guardado. Se o valor de uma propriedade mudou, o EF marca essa propriedade como alterada e gera a consulta SQL correspondente para atualizar.
Para classes que implementam a interface INotifyPropertyChanged, o EF pode acompanhar as alterações assim que elas ocorrem. Caso contrário, a comparação acontece ao guardar.
Exemplo:
var user = context.Users.Find(1);
user.Name = "Novo nome"; // EF marcará a propriedade Name como alterada
context.SaveChanges(); // atualizará apenas os campos alterados na base