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

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

scopeProvisioning.SetCreateTableDefault(DbSyncCreationOption.Skip);

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

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

干杯,

斯科特

于 2009-12-27T23:29:46.057 回答