【问题标题】:Sync Framework : Can I Sync only a subset of my tables?同步框架:我可以只同步我的表的一个子集吗?
【发布时间】:2008-12-22 08:37:05
【问题描述】:

用同步框架同步数据的常规代码sn-p是这样的:

LocalDBSyncAgent syncAgent = new LocalDBSyncAgent();
Microsoft.Synchronization.Data.SyncStatistics syncStats = syncAgent.Synchronize();

有没有人知道同步我的表子集的方法。 注意不是每个表中的数据,而是决定哪些表将参与同步。

谢谢 爱丽儿

【问题讨论】:

    标签: c# microsoft-sync-framework


    【解决方案1】:

    是的,你绝对可以。

    为您要同步的每个表创建一个 SyncTable,并将其添加到 SyncAgent 中的 Configuration.SyncTables。

    我发现 Bill Ryan 的 this article 很有启发性。他介绍了如何过滤每个表中的数据,但其中有一些东西可以满足您的需求。

    Bill Ryan 的示例:

    public class SampleSyncAgent : Microsoft.Synchronization.SyncAgent
     {
    
         public SampleSyncAgent()
         {
    
             SqlCeClientSyncProvider clientSyncProvider = new SqlCeClientSyncProvider(Properties.Settings.Default.ClientConnString, true);
             this.LocalProvider = clientSyncProvider;
                  clientSyncProvider.ChangesApplied += new EventHandler<ChangesAppliedEventArgs>(clientSyncProvider_ChangesApplied);    
    
             this.RemoteProvider = new SampleServerSyncProvider();    
    
             SyncTable customerSyncTable = new SyncTable("Customer");
             customerSyncTable.CreationOption = TableCreationOption.DropExistingOrCreateNewTable;
             customerSyncTable.SyncDirection = SyncDirection.DownloadOnly;**
    
             this.Configuration.SyncTables.Add(customerSyncTable);
             this.Configuration.SyncParameters.Add(new SyncParameter("@CustomerName", "Sharp Bikes"));
         }
    
    } 
    

    【讨论】:

      【解决方案2】:

      在 Sync Framework 2.0 中有一些与数据库相关的新同步提供程序 - 与以前可用的同步提供程序相比,它们具有许多优点(请参阅比较提供程序类型 here)。有了这些,您可以通过构建一个包含 DbSyncTableDescriptions 的 DbSyncScopeDescription 来指定应该同步表的子集,以仅用于您希望同步的那些表。

      您在上面说过您对过滤数据不感兴趣,但在这里可能值得一提的是,DbSyncScopeDescription 也包含过滤信息。

      【讨论】:

        猜你喜欢
        • 2011-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-08
        • 2023-04-03
        • 2020-01-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多