示例#1
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);
            }
        }
 /// <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;
 }
示例#3
0
        /// <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);
        }
示例#4
0
        /// <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();
                });
            }
        }
示例#5
0
 /// <summary>
 /// 是否有需要升级的数据库。
 /// </summary>
 /// <returns></returns>
 private static bool HasDatabase(MigratingOptions options)
 {
     return(options.Databases != null && options.Databases.Length > 0);
 }
示例#6
0
        /// <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();
                });
            }
        }
示例#7
0
 /// <summary>
 /// 是否有需要升级的数据库。
 /// </summary>
 /// <returns></returns>
 private static bool HasDatabase(MigratingOptions options)
 {
     return options.Databases != null && options.Databases.Length > 0;
 }
示例#8
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); }
        }