/// <summary> /// 运行删除数据库的核心方法 /// </summary> /// <param name="db">数据库操作对象</param> protected override void RunCore(IDbAccesser db) { //var mysqlInstance = new MySqlConnectionStringBuilder(db.Connection.ConnectionString); //MySqlConnection.ClearPool(db.Connection as MySqlConnection); using (var db2 = new DbAccesser(db.ConnectionSchema.ConnectionString, DbSetting.Provider_MySql)) { db2.ExecuteText(string.Format("DROP DATABASE IF EXISTS {0};", this.Database)); } }
internal ManagedConnectionDbAccesser(DbSetting dbSetting) { if (dbSetting == null) { throw new ArgumentNullException("dbSetting"); } _connectionManager = ConnectionManager.GetManager(dbSetting); _dba = new DbAccesser(dbSetting, _connectionManager.Connection); }
public void DMT_ManualMigrate() { using (var context = new RafyDbMigrationContext(UnitTestEntityRepositoryDataProvider.DbSettingName)) { context.HistoryRepository = new DbHistoryRepository(); context.RunDataLossOperation = DataLossOperation.All; try { context.ManualMigrations.Clear(); context.ManualMigrations.Add(new DMT_ManualMigrateEntity()); context.ManualMigrations.Add(new DMT_ManualMigrateTest()); //手工更新 context.MigrateManually(); //历史记录 var histories = context.GetHistories(); Assert.IsTrue(histories.Count == 2); Assert.IsTrue(histories[0] is DMT_ManualMigrateTest); Assert.IsTrue(histories[1] is DMT_ManualMigrateEntity); //数据库结构 var database = context.DatabaseMetaReader.Read(); var table = database.FindTable("TestingTable"); Assert.IsTrue(table.Columns.Count == 2); var pk = table.FindPrimaryColumn(); Assert.IsTrue(pk.Name.EqualsIgnoreCase("Id")); Assert.IsTrue(pk.DataType == DbType.Int32); //数据库数据 using (var db = new DbAccesser(UnitTestEntityRepositoryDataProvider.DbSettingName)) { var rows = db.QueryDataTable("select * from TestingTable"); Assert.IsTrue(rows.Rows.Count == 2); } var repo = RF.Find <TestUser>(); Assert.IsTrue(repo.CountAll() == 10); } finally { //回滚 context.RollbackAll(RollbackAction.DeleteHistory); var database = context.DatabaseMetaReader.Read(); Assert.IsTrue(database.FindTable("TestingTable") == null); } } }
protected override void RunCore(IDbAccesser db) { //db.Connection.Close(); //连接到 MASTER 数据库 var master = new SqlConnectionStringBuilder(db.Connection.ConnectionString) { InitialCatalog = "MASTER" }; //参考 EntityFramework SqlProviderServices.DbDeleteDatabase() SqlConnection.ClearPool(db.Connection as SqlConnection); using (var db2 = new DbAccesser(master.ConnectionString, DbSetting.Provider_SqlClient)) { db2.ExecuteText(string.Format("DROP DATABASE [{0}]", this.Database)); } }