【发布时间】:2010-11-18 01:15:40
【问题描述】:
我正在尝试学习同步框架。 我一步一步地按照 MSDN 文档进行操作,但它没有用。惊讶?! 我需要将 SQL Express 数据库与 SQL Express 数据库同步。 在阅读我需要做的配置和其他准备工作时,我永远找不到是否每次我想使用同步时都必须运行它。我的意思是,配置-> 同步-> 取消配置。 另一件事是,我在逐步制作 MSDN 示例时遇到了这个奇怪的异常。
DbProvisioningException "MomScope" 已经存在...不应该存在?
代码:
private void InitializeSync()
{
SqlConnection sourceConn = new SqlConnection(ConfigManager.Config.SourceSyncConnectionString);
SqlConnection myConn = new SqlConnection(ConfigManager.Config.ConnectionString);
#region SET SOURCE PROVIDER
SqlSyncProvider sourceSqlProv = new SqlSyncProvider("MomSync", sourceConn);
DbSyncScopeDescription sourceScope = new DbSyncScopeDescription("MomScope");
DbSyncTableDescription productsSourceTableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Mom_Products", sourceConn);
DbSyncTableDescription customersSourceTableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Mom_Customer", sourceConn);
DbSyncTableDescription ordersSourceTableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Mom_Orders", sourceConn);
DbSyncTableDescription paymentsSourceTableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Mom_Payments", sourceConn);
sourceScope.Tables.Add(productsSourceTableDesc);
sourceScope.Tables.Add(customersSourceTableDesc);
sourceScope.Tables.Add(ordersSourceTableDesc);
sourceScope.Tables.Add(paymentsSourceTableDesc);
SqlSyncScopeProvisioning sourceProvision = new SqlSyncScopeProvisioning(sourceConn, sourceScope);
sourceProvision.SetCreateTableDefault(DbSyncCreationOption.Skip);
try
{
sourceProvision.Apply();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
#endregion
#region SET MY PROVIDER
SqlSyncProvider myProvider = new SqlSyncProvider("MomSync", myConn);
DbSyncScopeDescription scopeSourceDesc = SqlSyncDescriptionBuilder.GetDescriptionForScope("MomScope", sourceConn); <===== DbProvisioningException (MomScope already exists????)
SqlSyncScopeProvisioning myProvision = new SqlSyncScopeProvisioning(myConn, scopeSourceDesc);
try
{
myProvision.Apply();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
#endregion
#region SET SYNC ORCHESTRATOR
OrcheStrator = new SyncOrchestrator
{
LocalProvider = myProvider,
RemoteProvider = sourceSqlProv,
Direction = SyncDirectionOrder.UploadAndDownload
};
((SqlSyncProvider)OrcheStrator.LocalProvider).ApplyChangeFailed += ApplyChangeFailedHandler;
#endregion
}
任何适当的同步样本?所以我可以正确地弄清楚如何创建这个任务?
谢谢。
【问题讨论】:
标签: sql-server c#-4.0 microsoft-sync-framework