public void Update(Telemetria telemetria) { if (_dbContext.Entry(telemetria).State == Microsoft.EntityFrameworkCore.EntityState.Detached) { _dbContext.Attach(telemetria); _dbContext.Entry(telemetria).State = Microsoft.EntityFrameworkCore.EntityState.Modified; } else { _dbContext.Update(telemetria); } _dbContext.SaveChanges(); }
public void UpdateFull(Temporada temporada) { if (_dbContext.Entry(temporada).State == Microsoft.EntityFrameworkCore.EntityState.Modified) { _dbContext.Attach(temporada); _dbContext.Entry(temporada).State = Microsoft.EntityFrameworkCore.EntityState.Modified; } else { _dbContext.Update(temporada); } _dbContext.SaveChanges(); }
public void UpdateFull(Equipe equipe) { if (_dbContext.Entry(equipe).State == Microsoft.EntityFrameworkCore.EntityState.Detached) { _dbContext.Attach(equipe); _dbContext.Entry(equipe).State = Microsoft.EntityFrameworkCore.EntityState.Modified; } else { _dbContext.Equipes.Update(equipe); } _dbContext.SaveChanges(); }
public void UpdateFull(Piloto piloto) { // Esse estado é quando no tratamento do PUT (UpdateFull) if (_rallyDakarDbContext.Entry(piloto).State == Microsoft.EntityFrameworkCore.EntityState.Detached) // Detached = não anexado { /* Essa instância não está "anexada" ao EF, isso impede que seja feita qlq operação com ela, então é feito o Attach */ _rallyDakarDbContext.Attach(piloto); /* A partir do momento que a instância está no controle/monitoração do EF, ela é marcada como modificada, ou seja * todos as propriedades (campos) estão modificados (conteúdo modificado). * Há como marcar somente os campos que de fato foram modificados. Melhor performance. * * Eu forço o estado para modificado, pq como estava Detached é pq a instância "piloto" ainda não está sendo monitorada */ _rallyDakarDbContext.Entry(piloto).State = Microsoft.EntityFrameworkCore.EntityState.Modified; } else // Simplesmente atualizo. UpdatePartial { _rallyDakarDbContext.Update(piloto); } _rallyDakarDbContext.SaveChanges(); // vai gerar o script UPDATE com todas/algumas das colunas. }