C# 如何根据选定的仅数据同步框架/技巧自定义同步

C# 如何根据选定的仅数据同步框架/技巧自定义同步,c#,web-services,microsoft-sync-framework,C#,Web Services,Microsoft Sync Framework,我正在为我的一个客户端开发一个同步数据库应用程序我已经完成了同步,但现在我遇到了一个问题,我不想同步完整的表,我只是想通过同步框架同步动态选择的记录 在客户端使用sqlce 任何好的链接,使一些帮助也将是可取的 我正在服务器上同步以下内容 public SyncContext GetChanges(SyncGroupMetadata groupMetadata, SyncSession syncSession) { return serverSyncProvider.Ge

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

在客户端使用
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);
    }

您可以添加筛选器以限制正在同步的行。但是,同步框架不支持动态筛选。同步框架基于自上次同步以来所更改内容的增量同步进行同步

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

您很可能会将选择同步的客户存储在另一个表中,比如SelectedCustomer,它将存储用户id和客户id


当用户从其选择中添加或删除客户时,您将更新SelectedCustomer。但是,同步Customer表时,除非自上次同步以来已更改了特定的Customer记录,否则不会得到任何结果。即使将客户添加到特定用户,实际的客户记录也不会更新,不会更新,也不会检测到任何更改。

您可以添加筛选器以限制正在同步的行。但是,同步框架不支持动态筛选。同步框架基于自上次同步以来所更改内容的增量同步进行同步

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

您很可能会将选择同步的客户存储在另一个表中,比如SelectedCustomer,它将存储用户id和客户id


当用户从其选择中添加或删除客户时,您将更新SelectedCustomer。但是,同步Customer表时,除非自上次同步以来已更改了特定的Customer记录,否则不会得到任何结果。即使将客户添加到特定用户,实际的客户记录也不会更新,不会更新,也不会检测到任何更改。

以下是JuneT撰写的文章;)

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


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

以下是JuneT撰写的文章;)

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


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

更新SelectedCustomer是不够的,跟踪记录已同步,但实际记录未同步。我必须创建一个插入/更新触发器来更新主跟踪记录中的本地\u创建\u对等\u时间戳。

更新SelectedCustomer是不够的,跟踪记录是同步的,但真实的记录不是。我必须创建一个插入/更新触发器来更新主跟踪记录中的本地\u创建\u对等\u时间戳。

但是我喜欢得到一个答案,这个答案可以通过一些链接来帮助我动态同步数据。EAP过滤是一个很好的选择,但我的目的是一个动态过滤,但随着你越来越接近我需要的内容,我正在标记你的文章作为回答,但我喜欢得到一个答案,它可以帮助我与一些链接,让我们同步数据动态EAP过滤是一个很好的选择,但我的目的是一个动态过滤需要,但随着你越来越接近我需要的,我标记你的文章作为回答这个博客文章适用于较新的同步提供商(sqlcesyncprovider/sqlsyncprovider),而他上面发布的代码是针对本地数据库缓存向导也使用的较旧的sqlceclientsyncprovider/dbserversyncprovider提供程序的。但是虚拟更新方法也应适用于较旧的提供程序。此博客文章适用于较新的同步提供程序(sqlcesyncprovider/sqlsyncprovider),而他上面发布的代码是针对本地数据库缓存向导也使用的较旧的sqlceclientsyncprovider/dbserversyncprovider提供程序的。但是虚拟更新方法也应该适用于较旧的提供程序。