public static void UpdateSoftDeletable(this DB.PubQuizContext context) { var entries = context.ChangeTracker.Entries(); foreach (var entry in entries.Where(entry => entry.Entity is NewSoftDeletable).Select(entry => entry)) { var entity = (NewSoftDeletable)entry.Entity; switch (entry.State) { case EntityState.Added: entity.IsDeleted = false; break; case EntityState.Deleted: entry.State = EntityState.Modified; entity.IsDeleted = true; break; default: break; } } }
public static void UpdateBaseDateable(this DB.PubQuizContext context) { var entries = context.ChangeTracker.Entries(); foreach (var entry in entries.Where(entry => entry.Entity is NewBaseDateable).Select(entry => entry)) { var entity = (NewBaseDateable)entry.Entity; var now = DateTime.UtcNow; switch (entry.State) { case EntityState.Modified: entity.LastModifiedAt = now; break; case EntityState.Added: entity.CreatedAt = now; break; default: break; } } }