public ValidationDbMigrationContext(SqlConnection sqlConnection) { SqlConnection = sqlConnection ?? throw new ArgumentNullException(nameof(sqlConnection)); SqlConnectionAccessToken = sqlConnection.AccessToken; ValidationDbContextFactory.ValidationEntitiesContextFactory = () => { SetSqlConnectionAccessToken(); return new ValidationEntitiesContext(SqlConnection); }; var migrationsConfiguration = new ValidationMigrationsConfiguration(); GetDbMigrator = () => new DbMigrator(migrationsConfiguration, new ValidationEntitiesContext(SqlConnection)); }
public void NoPendingMigrations() { var currentTimestamp = DateTimeOffset.UtcNow.ToString("yyyyMMddHHmmssFFFFFFF"); _dbName = $"PendingMigrationsTest{currentTimestamp}Validation"; var connectionString = $@"Data Source=(localdb)\mssqllocaldb; Initial Catalog={_dbName}; Integrated Security=True; MultipleActiveResultSets=True"; var migrationsConfiguration = new ValidationMigrationsConfiguration { TargetDatabase = new DbConnectionInfo(connectionString, "System.Data.SqlClient"), }; var dbMigrator = new DbMigrator(migrationsConfiguration); var migrations = dbMigrator.GetLocalMigrations(); dbMigrator.Update(migrations.Last()); var migrationScaffolder = new MigrationScaffolder(dbMigrator.Configuration); var migrationName = $"TestMigration{currentTimestamp}"; var result = migrationScaffolder.Scaffold(migrationName); _output.WriteLine("Migration content:"); _output.WriteLine(new string('-', 60)); _output.WriteLine(result.UserCode); _output.WriteLine(new string('-', 60)); Assert.Equal( $@"namespace {dbMigrator.Configuration.MigrationsNamespace} {{ using System; using System.Data.Entity.Migrations; public partial class {migrationName} : DbMigration {{ public override void Up() {{ }} public override void Down() {{ }} }} }} ", result.UserCode); }