有什么方法可以在不丢失本地数据的情况下重新配置本地数据库(使用 Sync 框架 2.1)?
我的情况是:
- 在远程数据库上添加一个新列
- 重新配置远程数据库(以在同步模板中包含新列)
- 重新配置本地数据库。
我的问题从第 3 步开始,因为我需要删除 LOCAL DB 上存在的所有表才能获得新范围,否则我会得到异常:"Invalid column name 'new column'"
那么,是否可以在不删除旧表的情况下重新配置本地数据库?
请,所有的帮助将不胜感激。
有什么方法可以在不丢失本地数据的情况下重新配置本地数据库(使用 Sync 框架 2.1)?
我的情况是:
我的问题从第 3 步开始,因为我需要删除 LOCAL DB 上存在的所有表才能获得新范围,否则我会得到异常:"Invalid column name 'new column'"
那么,是否可以在不删除旧表的情况下重新配置本地数据库?
请,所有的帮助将不胜感激。
取消配置不会删除数据,它只会删除与范围关联的元数据/对象。如果它的数据库取消配置,它会删除所有 Sync Fx 创建的对象。
所以好的一面是,您不会丢失数据。不好的一面是,如果您在同一张表上重新配置新范围,它们已经有数据了。但是新范围不知道这些数据(同步知识在新范围上是空的),因此您最终会同步现有行,这反过来会导致冲突。
擦除其中一个副本是最快的解决方案。
您不需要删除数据库。de 配置两个数据库。并为数据表添加新列并运行同步。这应该有效。这就是您取消配置的方式。
SqlSyncScopeDeprovisioning scopeDeprovisioning = new SqlSyncScopeDeprovisioning((SqlConnection)_peerProvider.Connection);
scopeDeprovisioning.ObjectSchema = _dbProvider.ObjectSchema;
// Remove the scope.
scopeDeprovisioning.DeprovisionScope(this._peerProvider.ScopeName);