我的 N层同步框架应用程序在Azure上托管了WCF服务,运行小型WPF客户端的客户端。这些客户端使用WCF服务将其本地SQL Server Express数据库与Azure上的SQL数据库同步。因此,从WPF应用程序,SyncOrchestrator通过代理使用 SqlSyncProvider (LocalProvider)和 RelationalProviderProxy (RemoteProvider)。使用Microsoft的SyncSvcUtilUI在服务器上手动完成配置,并在运行时应用于客户端。 它就像一个魅力!
但现在我需要添加过滤器。因此,客户可以选择他们想要同步的客户。他们有一个简单的下拉菜单来选择客户的位置(让我们说只有来自纽约的客户),然后我会应用这些过滤器和同步。这就是我现在正在做的事情:
问题? 我在同步之前执行取消配置客户端和服务器的时间,丢失跟踪并一次又一次地发送所有数据。这就是我的问题。我无法相信没有别的办法。或者我错过了什么?我需要使用过滤器,它们需要是动态的。
如果有人有关于更好的方法的一些提示,我会非常感激(我的全部耳朵):)
谢谢!
答案 0 :(得分:1)
不支持同步Fx中的动态过滤(分区重新排列或进出范围的行)。
建议的方法是取消配置并重新初始化客户端。
您可以尝试重写同步提供程序并自行构建过滤器查询(请参阅方法here以覆盖查询)。
在范围内添加一行(该行符合过滤条件)很容易。但你必须单独处理超出范围的行(该行已同步到客户端,但过滤条件已被修改,因此行不应该在客户端)