重新配置而不会丢失数据

时间:2013-09-11 12:19:16

标签: .net synchronization microsoft-sync-framework

有没有办法在不丢失本地数据的情况下重新配置本地数据库(使用Sync framework 2.1)?

我的情景是:

  1. 在远程数据库
  2. 上添加新列
  3. 重新配置远程数据库(以在同步模板上包含新列)
  4. 重新配置LOCAL DB。
  5. 我的问题从第3步开始,因为我需要删除LOCAL DB上的所有表以便能够获得新范围,否则我将得到例外:"Invalid column name 'new column'"

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

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

2 个答案:

答案 0 :(得分:1)

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

好的一面,你不会丢失数据。 不好的一面,如果你在同一张桌子上重新配置一个新的范围,他们已经拥有了数据。但是新范围并不知道这些数据(同步知识在新范围内是空的),因此您最终会同步现有行,从而导致冲突。

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

答案 1 :(得分:0)

您无需删除数据库。 de配置两个数据库。并为数据表添加新列并运行同步。这应该工作。这就是你贬低的方式。

   SqlSyncScopeDeprovisioning scopeDeprovisioning = new SqlSyncScopeDeprovisioning((SqlConnection)_peerProvider.Connection);
            scopeDeprovisioning.ObjectSchema = _dbProvider.ObjectSchema;
            // Remove the scope.
            scopeDeprovisioning.DeprovisionScope(this._peerProvider.ScopeName);