public TestSessionWrapper Initialize() { var dialect = new DialectFactory().Create(this.configuration.ConnectionStringSettings); // load the data using (var transactionLessSession = this.configuration.BeginTransactionLessSession()) { // create database if exists if (!dialect.IgnoreMultipleDatabases) { if (transactionLessSession.Dapper.Query(dialect.CheckDatabaseExists(DatabaseName)).Any()) { transactionLessSession.Dapper.Execute("drop database " + DatabaseName); } transactionLessSession.Dapper.Execute("create database " + DatabaseName); transactionLessSession.Dapper.Execute("use " + DatabaseName); } var migrator = new Migrator( dialect, new CreateTableWriter(dialect), new AlterTableWriter(dialect), new DropTableWriter(dialect), new StatisticsProvider(null, dialect)); IEnumerable<string> warnings, errors; var createStatement = migrator.GenerateSqlDiff( new List<IMap>(), this.configuration.Maps, null, new Mock<ILogger>().Object, new string[0], new string[0], out warnings, out errors); var statements = createStatement.Split(';'); foreach (var statement in statements.Where(s => !string.IsNullOrWhiteSpace(s.Trim()))) { transactionLessSession.Dapper.Execute(statement); } } var session = this.configuration.BeginSession(); if (!dialect.IgnoreMultipleDatabases) { session.Dapper.Execute("use " + DatabaseName); } this.InsertData(session); return new TestSessionWrapper(session); }