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 を使用してテーブル 'My table' の SyncAdapter を作成できません。SqlSyncAdapterBuilder メソッドのいずれかを呼び出す前に、SqlSyncAdapterBuilder の Connection プロパティを初期化します。

4

1 に答える 1