Я хочу синхронизировать таблицу с локального компьютера на сервер, но с другим именем.Однако таблица на сервере может не существовать, и поэтому я хочу, чтобы таблица создавалась как часть синхронизации.
Вот мой текущий код:
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}");
}
Это работает и назначениеТаблица создана правильно, однако имена исходной и целевой таблиц совпадают.Как я могу сказать платформе синхронизации синхронизироваться с другим именем таблицы и создать таблицу, если она не существует?