0

所以,我有一个连接到两个数据库的同步 fx C# 项目。我目前正在为这两个项目添加配置,但在我配置之前,我首先取消配置,如代码中所示。

SqlSyncScopeProvisioning sqlAzureProv = new SqlSyncScopeProvisioning(sqlAzureConn, myScope);
SqlSyncScopeDeprovisioning sqlAzureDeprov = new     SqlSyncScopeDeprovisioning(sqlAzureConn);


sqlAzureDeprov.DeprovisionStore();

sqlAzureProv.Apply();

问题是,每次我调用该Apply()方法时,它都会抛出错误

为“更改”多次指定了“local_update_peer_timestamp”列。

我没有local_update_peer_timestamp在我的数据库中使用任何列,我已经检查了所有内容。

它仅在重新配置时发生,新的配置不会返回任何错误。

有任何想法吗?谢谢。

4

2 回答 2

2

只是把实际问题放在这里。

填充范围描述时,请确保您没有在同步范围描述中包含由 Sync Fx 创建的表(_tracking 表和 scope_xxx 表)。

这通常发生在您只扫描数据库中的所有表、循环它们并将它们添加到同步范围描述中时。

于 2013-02-01T06:53:20.973 回答
1

在使用范围(过滤器)进行配置的基本结构下方,如果您想要没有范围,只需:` // 定义一个名为 ProductsScope 的新范围 scopeDesc = new DbSyncScopeDescription(values);

                    // get the description of the Products table from SyncDB dtabase
                    tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable(values, serverConn);

                    // add the table description to the sync scope definition
                    scopeDesc.Tables.Add(tableDesc);

                    // create a server scope provisioning object based on the ProductScope
                    serverProvision = new SqlSyncScopeProvisioning(serverConn, scopeDesc);

                    // skipping the creation of table since table already exists on server
                    serverProvision.SetCreateTableDefault(DbSyncCreationOption.Skip);

                    // start the provisioning process
                    serverProvision.Apply();
                    //Console.WriteLine(values);`
于 2018-05-03T21:23:27.957 回答