Entity Framework Migrations: Including Go statement only in -Script output

前端 未结 5 1733
暖寄归人
暖寄归人 2020-12-06 01:17

As part of planning an Entity Framework migration, in order to debug data movement, I would often use the -Script parameter to generate the script.

I could then take

5条回答
  •  北海茫月
    2020-12-06 01:42

    internal sealed class Configuration : DbMigrationsConfiguration
    {
        public Configuration()
        {
            AutomaticMigrationsEnabled = false;
            const string providerInvariantName = "System.Data.SqlClient";
            SetSqlGenerator(providerInvariantName, new BatchingMigrationSqlGenerator(GetSqlGenerator(providerInvariantName)));
        }
    
        protected override void Seed(Context context)
        {
        }
    
    }
    
    internal class BatchingMigrationSqlGenerator : MigrationSqlGenerator
    {
        private readonly MigrationSqlGenerator migrationSqlGenerator;
    
        public BatchingMigrationSqlGenerator(MigrationSqlGenerator migrationSqlGenerator)
        {
            this.migrationSqlGenerator = migrationSqlGenerator;
        }
    
        public override IEnumerable Generate(IEnumerable migrationOperations, string providerManifestToken)
        {
            var migrationStatements = migrationSqlGenerator.Generate(migrationOperations, providerManifestToken).ToArray();
            foreach (var migrationStatement in migrationStatements)
            {
                migrationStatement.BatchTerminator = "GO";
            }
            return migrationStatements;
        }
    }
    

提交回复
热议问题