0

我有一个数据库,我们希望将数据部分同步到另一个数据库(在 Azure 上)。

我一直在研究Sync Framework 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 方法之前初始化 SqlSyncAdapterBuilder 的 Connection 属性

4

1 回答 1

1

仅较旧的脱机提供程序 (SqlClientSyncProvider/DbServerSyncProvider/SyncAgent) 支持 SQL 更改跟踪。您尝试使用的较新提供程序 (SqlSyncProvider/SyncOrchestrator) 需要自定义更改跟踪。您不能混合和匹配数据库同步提供程序。

您是否考虑过使用 SSIS?

于 2013-08-22T02:51:58.463 回答