微软同步框架。将“范围”应用于现有的 SqlCe 数据库
Posted
技术标签:
【中文标题】微软同步框架。将“范围”应用于现有的 SqlCe 数据库【英文标题】:Microsoft Sync Framework. Applying "Scope" to an existing SqlCe database 【发布时间】:2009-12-17 22:53:01 【问题描述】:是否可以将 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】:我会尝试的一件事是在调用 SetCreateTableDefault 时使用 Skip 枚举值。
scopeProvisioning.SetCreateTableDefault(DbSyncCreationOption.Skip);
这些表已经存在于数据库中,您不需要创建它们。
此外,如果更改跟踪已启用,我过去在配置 SQL Server Compact Edition 数据库时遇到问题。
干杯,
斯科特
【讨论】:
感谢您抽出宝贵时间回复。我最终对事物进行了重构,以便在创建 SqlCe 数据库时将其应用范围。以上是关于微软同步框架。将“范围”应用于现有的 SqlCe 数据库的主要内容,如果未能解决你的问题,请参考以下文章
Sencha CMD 构建过程应用于现有的 ExtJs 4.1 应用程序