public override IEnumerable <MigrationStatement> Generate(
            IEnumerable <MigrationOperation> migrationOperations,
            string providerManifestToken)
        {
            // usa o `DiscriminatorIndexAnnotationProcessor` para substituir as anotações
            // do DiscriminatorIndex pelas operações de Create/Rename/Delete index.
            migrationOperations = DiscriminatorIndexAnnotationProcessor.Process(migrationOperations);

            // continua o processamento utilizando o SQL Generator decorado.
            return(_migrationSqlGenerator.Generate(migrationOperations, providerManifestToken));
        }
        public override ScaffoldedMigration Generate(
            string migrationId,
            IEnumerable <MigrationOperation> operations,
            string sourceModel,
            string targetModel,
            string @namespace,
            string className)
        {
            var operacoesProcessadas = DiscriminatorIndexAnnotationProcessor.Process(operations);

            return(_wrapped.Generate(
                       migrationId,
                       operacoesProcessadas,
                       sourceModel,
                       targetModel,
                       @namespace,
                       className));
        }