void Generate(EnableChangeTrackingForDatabaseOperation operation, IModel model, MigrationCommandListBuilder builder) { var sqlHelper = Dependencies.SqlGenerationHelper; var autoCleanUp = operation.AutoCleanup ? "ON" : "OFF"; builder .Append("ALTER DATABASE ") .Append(sqlHelper.DelimitIdentifier(Dependencies.CurrentContext.Context.Database.GetDbConnection().Database)) .Append(" SET CHANGE_TRACKING = ON ") .Append($"(CHANGE_RETENTION = {operation.RetentionDays} DAYS, AUTO_CLEANUP = {autoCleanUp})") .AppendLine(sqlHelper.StatementTerminator) .EndCommand(true); }
protected override void Generate(MigrationOperation operation, IModel model, MigrationCommandListBuilder builder) { Action generateAction = operation switch { EnableChangeTrackingForDatabaseOperation op => () => Generate(op, model, builder), DisableChangeTrackingForDatabaseOperation op => () => Generate(op, model, builder), EnableChangeTrackingForTableOperation op => () => Generate(op, model, builder), DisableChangeTrackingForTableOperation op => () => Generate(op, model, builder), _ => () => base.Generate(operation, model, builder) }; generateAction(); } }