Microsoft Sync Framework。将“Scope”应用于现有的SqlCe数据库

时间:2009-12-17 22:53:01

标签: sql-server-ce microsoft-sync-framework

是否可以将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);
}

如果可能,或者我做错了,请告诉我。谢谢, 亚历

1 个答案:

答案 0 :(得分:0)

我要尝试的一件事是在调用SetCreateTableDefault时使用Skip枚举值。

scopeProvisioning.SetCreateTableDefault(DbSyncCreationOption.Skip);

这些表已经存在于数据库中,您无需创建它们。

此外,如果已启用更改跟踪,我在过去配置SQL Server Compact Edition数据库时遇到问题。

干杯,

斯科特