/// <summary> /// 调用服务在服务端升级数据库。 /// </summary> /// <param name="options"></param> private static void MigrateOnServer(MigratingOptions options) { var win = new WaitDialog(); win.Width = 500; win.IsIndeterminate = true; win.ShowInTaskbar = false; win.Text = "正在服务端执行数据库升级操作,请稍等……"; Exception exception = null; ThreadPool.QueueUserWorkItem(oo => { try { var svc = ServiceFactory.Create <MigrateService>(); svc.Options = options; svc.Invoke(); } catch (Exception ex) { exception = ex; } Action ac = () => win.DialogResult = true; win.Dispatcher.BeginInvoke(ac); }); win.ShowDialog(); if (exception != null) { throw new Rafy.DbMigration.DbMigrationException("数据库升级时出错,请查看 InnerException。", exception); } }
/// <summary> /// 获取用户选择的数据库 /// </summary> /// <returns></returns> public MigratingOptions GetSelectionResult() { var res = new MigratingOptions(); res.ReserveHistory = cbReserveHistory.IsChecked.GetValueOrDefault(); res.RunDataLossOperation = cbRunLossOperation.IsChecked.GetValueOrDefault() ? DataLossOperation.All : DataLossOperation.None; res.Databases = this._dbSettingView.SelectedEntities.Cast<DbSettingItem>().Select(s => s.Name).ToArray(); return res; }
/// <summary> /// 获取用户选择的数据库 /// </summary> /// <returns></returns> public MigratingOptions GetSelectionResult() { var res = new MigratingOptions(); res.ReserveHistory = cbReserveHistory.IsChecked.GetValueOrDefault(); res.RunDataLossOperation = cbRunLossOperation.IsChecked.GetValueOrDefault() ? DataLossOperation.All : DataLossOperation.None; res.Databases = this._dbSettingView.SelectedEntities.Cast <DbSettingItem>().Select(s => s.Name).ToArray(); return(res); }
/// <summary> /// 单机版的数据库生成。 /// </summary> private static void MigrateDbInProgress(MigratingOptions options) { MigrateInProgressBar(ConnectionStringNames.DbMigrationHistory, c => { c.AutoMigrate(); }); foreach (var config in options.Databases) { MigrateInProgressBar(config, c => { c.RunDataLossOperation = options.RunDataLossOperation; c.HistoryRepository = new DbHistoryRepository(); c.AutoMigrate(); }); } }
/// <summary> /// 是否有需要升级的数据库。 /// </summary> /// <returns></returns> private static bool HasDatabase(MigratingOptions options) { return(options.Databases != null && options.Databases.Length > 0); }
/// <summary> /// 是否有需要升级的数据库。 /// </summary> /// <returns></returns> private static bool HasDatabase(MigratingOptions options) { return options.Databases != null && options.Databases.Length > 0; }
/// <summary> /// 调用服务在服务端升级数据库。 /// </summary> /// <param name="options"></param> private static void MigrateOnServer(MigratingOptions options) { var win = new WaitDialog(); win.Width = 500; win.IsIndeterminate = true; win.ShowInTaskbar = false; win.Text = "正在服务端执行数据库升级操作,请稍等……"; Exception exception = null; ThreadPool.QueueUserWorkItem(oo => { try { var svc = ServiceFactory.Create<MigrateService>(); svc.Options = options; svc.Invoke(); } catch (Exception ex) { exception = ex; } Action ac = () => win.DialogResult = true; win.Dispatcher.BeginInvoke(ac); }); win.ShowDialog(); if (exception != null) { throw new Rafy.DbMigration.DbMigrationException("数据库升级时出错,请查看 InnerException。", exception); } }