каркас синхронизации и синхронизация с другим именем таблицы - PullRequest
0 голосов
/ 27 августа 2018

Я хочу синхронизировать таблицу с локального компьютера на сервер, но с другим именем.Однако таблица на сервере может не существовать, и поэтому я хочу, чтобы таблица создавалась как часть синхронизации.

Вот мой текущий код:

        try
        {
            using (SqlConnection sourceConn = new SqlConnection(ConfigurationManager.AppSettings["SourceSQLConnectionString"]))
            {
                sourceConn.Open();
                using (SqlConnection destConn = new SqlConnection(ConfigurationManager.AppSettings["DestinationSQLConnectionString"]))
                {
                    destConn.Open();
                    DbSyncScopeDescription myScope = new DbSyncScopeDescription(scopeName);

                    string[] columns = ConfigurationManager.AppSettings["ColumnsToSync"].Split(',').Where(a => !String.IsNullOrWhiteSpace(a)).Select(a => a.Trim()).ToArray();
                    Collection<string> columnsToSync = new Collection<string>();
                    foreach (string column in columns)
                    {
                        columnsToSync.Add(column);
                    }

                    DbSyncTableDescription tableToSync = SqlSyncDescriptionBuilder.GetDescriptionForTable(ConfigurationManager.AppSettings["TableToSync"], columnsToSync, sourceConn);
                    myScope.Tables.Add(tableToSync);

                    SqlSyncScopeProvisioning sourceProv = new SqlSyncScopeProvisioning(sourceConn, myScope);
                    if (!sourceProv.ScopeExists(scopeName))
                    {
                        sourceProv.Apply();
                        log.Info("Provisioned source database");
                    }

                    SqlSyncScopeProvisioning destProv = new SqlSyncScopeProvisioning(destConn, myScope);
                    if (!destProv.ScopeExists(scopeName))
                    {
                        destProv.Apply();
                        log.Info("Provisioned destination database");
                    }

                    destConn.Close();
                }
                sourceConn.Close();
            }
        }
        catch(Exception e)
        {
            log.Error($"Error occurred provisioning databases with message {e.Message}");
        }

Это работает и назначениеТаблица создана правильно, однако имена исходной и целевой таблиц совпадают.Как я могу сказать платформе синхронизации синхронизироваться с другим именем таблицы и создать таблицу, если она не существует?

...