1

我正在为我的一个客户开发一个同步数据库应用程序我已经完成了同步但现在我卡在了我不想同步完整表的部分我只是想通过同步框架同步动态选择的记录

sqlce在客户端使用

任何可以提供帮助的好的链接也将是可取的

我正在同步一些类似下面的东西在服务器上

public SyncContext GetChanges(SyncGroupMetadata groupMetadata, SyncSession syncSession)
    {
        return serverSyncProvider.GetChanges(groupMetadata, syncSession);
    }



    public SyncContext ApplyChanges(SyncGroupMetadata groupMetadata, DataSet dataSet, SyncSession syncSession)
    {
        return serverSyncProvider.ApplyChanges(groupMetadata, dataSet, syncSession);
    }
4

3 回答 3

5

您可以添加过滤器来限制正在同步的行。但是 Sync Framework 不支持动态过滤。同步框架根据自上次同步以来更改的增量同步进行同步。

例如,假设您有一个客户表,并且您让用户选择要同步的客户。

您很可能会将选择用于同步的客户存储在另一个表中,假设 SelectedCustomer 将存储用户 ID。和客户 ID。

当用户从他的选择中添加或删除客户时,您将更新 SelectedCustomer。但是,当您同步客户表时,除非特定客户记录自上次同步以来已更改,否则您将一无所获。即使将客户添加到特定用户,实际客户记录也不会更新,不会更新,也不会检测到更改。

于 2012-09-18T10:10:33.403 回答
3

这是 JuneT 写的文章;)

同步框架供应

转到基于参数的过滤器部分

JuneT 的回答是绝对正确的。诀窍是,如果您选择要同步的行,请在同步之前先更新该行(以便跟踪表将该行记录为已更新)。

于 2012-09-18T14:58:58.960 回答
0

更新 SelectedCustomer 是不够的,跟踪记录同步了但真实的没有。我必须创建一个插入/更新触发器来更新主跟踪记录中的 local_create_peer_timestamp。

于 2015-07-17T16:10:07.750 回答