我想在同一个表上配置几个范围以同步表中的不同数据集。配置工作很好,没有错误。但是,当我去同步时,对SyncOrchestrator.Synchronize()的调用超时。SqlCeSyncScopeProvisioning过滤器不工作
当我仅同步其中一个作用域时,似乎所有数据都被同步,而不仅仅是由作用域过滤器定义的数据。
这是我为其中一个范围提供的代码。范围每个运行在一个单独的线程中,以便它们同步同步。
服务器配置:
var remoteLogVariableScopeDescription = new DbSyncScopeDescription(string.Format("{0}_{1}", DatabaseID, scopeName));
remoteLogVariableScopeDescription.Tables.Add(SqlCeSyncDescriptionBuilder.GetDescriptionForTable("TableName", localConnection));
var remoteDatabaseConfiguration = new SqlSyncScopeProvisioning(remoteConnection, remoteLogVariableScopeDescription);
remoteDatabaseConfiguration.ObjectPrefix = string.Format("Sync_{0}", scopeName);
remoteDatabaseConfiguration.Tables["TableName"].AddFilterColumn("Time);
remoteDatabaseConfiguration.Tables["TableName"].FilterClause = [side].Time >= DATEADD(minute, -1, GETDATE());
remoteDatabaseConfiguration.SetCreateTableDefault(DbSyncCreationOption.Skip);
remoteDatabaseConfiguration.SetUseBulkProceduresDefault(true);
remoteDatabaseConfiguration.CommandTimeout = 30;
remoteDatabaseConfiguration.Apply()
本地供应:
DbSyncScopeDescription localFrequentScopeDescription = SqlSyncDescriptionBuilder.GetDescriptionForScope(string.Format("{0}_{1}", DatabaseID, scopeName), string.Format("Sync_{0}", scopeName), remoteConnection);
var localDatabaseConfiguration = new SqlCeSyncScopeProvisioning(localConnection, localFrequentScopeDescription);
localDatabaseConfiguration.ObjectPrefix = string.Format("Sync_{0}", scopeName);
localDatabaseConfiguration.SetCreateTableDefault(DbSyncCreationOption.Skip);
localDatabaseConfiguration.Apply();
我的问题是: 是我提供的范围过滤器可能吗? 你可以同时在同一张桌子上运行多个范围吗?
在此先感谢您的帮助!
完美,谢谢您! – Stuart 2012-07-30 14:57:17