1

有什么方法可以在不丢失本地数据的情况下重新配置本地数据库(使用 Sync 框架 2.1)?

我的情况是:

  1. 在远程数据库上添加一个新列
  2. 重新配置远程数据库(以在同步模板中包含新列)
  3. 重新配置本地数据库。

我的问题从第 3 步开始,因为我需要删除 LOCAL DB 上存在的所有表才能获得新范围,否则我会得到异常:"Invalid column name 'new column'"

那么,是否可以在不删除旧表的情况下重新配置本地数据库?

请,所有的帮助将不胜感激。

4

2 回答 2

1

取消配置不会删除数据,它只会删除与范围关联的元数据/对象。如果它的数据库取消配置,它会删除所有 Sync Fx 创建的对象。

所以好的一面是,您不会丢失数据。不好的一面是,如果您在同一张表上重新配置新范围,它们已经有数据了。但是新范围不知道这些数据(同步知识在新范围上是空的),因此您最终会同步现有行,这反过来会导致冲突。

擦除其中一个副本是最快的解决方案。

于 2013-09-12T02:40:10.137 回答
0

您不需要删除数据库。de 配置两个数据库。并为数据表添加新列并运行同步。这应该有效。这就是您取消配置的方式。

   SqlSyncScopeDeprovisioning scopeDeprovisioning = new SqlSyncScopeDeprovisioning((SqlConnection)_peerProvider.Connection);
            scopeDeprovisioning.ObjectSchema = _dbProvider.ObjectSchema;
            // Remove the scope.
            scopeDeprovisioning.DeprovisionScope(this._peerProvider.ScopeName);
于 2013-09-12T00:48:11.777 回答