1

DbSyncScopeDescriptionを既存のSqlCeDatabaseに適用することは可能ですか?

このデータベースから構築されたDbSyncScopeDescriptionを使用して既存のデータベースをプロビジョニングしようとしています。

これは私がこれをテストするために使用しているコードです。これにより、私が何をしようとしているのかがわかります。

最後の行に次のメッセージが表示されたSqlCeExceptionが発生します。

「指定されたインデックスは存在しません。[sysChangeTxBsn_idx]」。

private void Test()
{
    DbSyncScopeDescription scopeDescription =
       new DbSyncScopeDescription("MyScope");

    foreach (string tableName in TableNames)
    {
        DbSyncTableDescription tableDecsription = SqlCeSyncDescriptionBuilder
            .GetDescriptionForTable(tableName, myConnection);
        scopeDescription.Tables.Add(tableDecsription);
    }

    SqlCeSyncScopeProvisioning scopeProvisioning =
        new SqlCeSyncScopeProvisioning(scopeDescription);
    scopeProvisioning.SetCreateTableDefault(DbSyncCreationOption.Create); 
    scopeProvisioning.Apply(myConnection);
}

これが可能かどうか、または私が何か間違ったことをしている場合は、私に知らせてください。ありがとう、アレックス

4

1 に答える 1

0

私が試みることの1つは、SetCreateTableDefaultの呼び出しでSkip列挙値を使用することです。

scopeProvisioning.SetCreateTableDefault(DbSyncCreationOption.Skip);

テーブルはデータベースにすでに存在しているため、作成する必要はありません。

また、変更の追跡がすでに有効になっている場合、過去にSQL ServerCompactEditionデータベースのプロビジョニングで問題が発生しました。

乾杯、

スコット

于 2009-12-27T23:29:46.057 に答える