2013-08-21 66 views
0

我有一個數據庫,我們希望將數據部分同步到另一個數據庫(在Azure上)。在不改變源數據庫模式的情況下單向同步數據

我一直在尋找同步框架2.1,並認爲它可以解決這個問題,但我不能從聯機文檔中弄明白。

我們有剋制,我們不能改變數據庫的模式,但是我們使用SQL 2008 R2,這意味着我們可以使用跟蹤更改。

我在尋找一些關於如何實現這一點的建議。

目前,我有一個SyncOrchestrator

 var orch = new SyncOrchestrator 
     { 
      LocalProvider = new SampleServerSyncProvider(), 
      RemoteProvider = new SampleClientSymcProvider(), 
      Direction = SyncDirectionOrder.Upload 
     }; 

然後同步提供

public class SampleServerSyncProvider : DbServerSyncProvider 
{ 
    private String SQLLocalConnection = "valid connection string"; 
    public SampleServerSyncProvider() 
    {    
     SqlConnection serverConn = new SqlConnection(SQLLocalConnection); 
     Connection = serverConn; 
     Connection.Open(); 
     var cmTableSyncAdapter = new SqlSyncAdapterBuilder 
     { 
      Connection = serverConn, 
      ChangeTrackingType = ChangeTrackingType.SqlServerChangeTracking, 
      SyncDirection = SyncDirection.Bidirectional, 
      TableName = "my table" 
     };     
     SyncAdapters.Add(cmTableSyncAdapter.ToSyncAdapter()); 
    } 
} 

目前我得到的是談論初始化連接的錯誤。但我無法找到任何對象

System.InvalidOperationException的初始化方法:無法通過使用 SqlSyncAdapterBuilder創建表「我的表」一SyncAdapter因爲與服務器的連接尚未 被初始化。您調用任何SqlSyncAdapterBuilder的 方法

回答

1

SQL更改跟蹤僅支持較老的離線提供商之前,初始化 SqlSyncAdapterBuilder的連接屬性(SqlClientSyncProvider/DbServerSyncProvider/SyncAgent)。您嘗試使用的較新提供程序(SqlSyncProvider/SyncOrchestrator)需要定製更改跟蹤。您不能混合和匹配數據庫同步提供程序。

你看過使用SSIS嗎?

相關問題