我有一个数据库,我们希望将数据部分同步到另一个数据库(在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:无法使用表格为“我的表”创建SyncAdapter SqlSyncAdapterBuilder因为与服务器的连接还没有 已初始化。初始化的Connection属性 在调用任何SqlSyncAdapterBuilder之前,SqlSyncAdapterBuilder 方法
答案 0 :(得分:1)
仅在较旧的脱机提供程序(SqlClientSyncProvider / DbServerSyncProvider / SyncAgent)上支持SQL更改跟踪。您尝试使用的较新提供程序(SqlSyncProvider / SyncOrchestrator)需要自定义更改跟踪。您无法混合和匹配数据库同步提供程序。
您是否考虑过使用SSIS?