2008-12-22 30 views
1

同步與同步框架數據的常規代碼片段是這樣的:同步框架:我可以只同步我的表的一個子集嗎?

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

做anynody知道的方式來同步我的表的子集。 請注意,不是每個表內的數據,而是決定哪些表將參與同步。

感謝 阿里爾

回答

3

是的,你絕對可以。

爲要同步的每個表創建一個SyncTable,並將其添加到SyncAgent中的Configuration.SyncTables中。

我發現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還包含過濾信息。

相關問題