我很高兴在应用程序上使用SyncFx v.2.1。客户端目前使用SQLCE,服务器端使用Server 2008 r2。我正在使用SyncFx代理并在WCF服务中托管服务器SyncAdapterBuilder代码。客户端有SyncAgent和SyncTables,它工作正常。我使用集成的SQL更改跟踪代替耦合(也称为自定义/范围)更改跟踪,因为我不允许修改现有模式。
所以我的问题是系统的要求已经改变,我需要在客户端上使用SQL Express来支持存储过程。
为什么不合并复制?这些要求还禁止修改架构或使用触发器。实际上,在迁移到SyncQx for SQLCE之前,应用程序的原始版本使用了与SQLCE的合并复制。
那怎么办?我已经阅读了很多相互矛盾的信息,我只能假设这是对不断发展的SyncFx版本的回应。没有直接的例子说明如何在两者上实现SQL to SQL Express和Change Tracking。另外,我试图从功能性SQLCE实现过渡到Express,尽可能少的更改。客户端已经能够使用任何类型的DB,它只是当前需要更改的同步过程。
这是我发现的,但没有成功。我已经阅读了有关此问题的每个StackOverflow响应,但仍然没有找到实现此方法的方法。
所以那些可以帮助我的例子。基本上我想通过代理将现有功能的SQLCE SyncFx移植到集成的SQL更改跟踪,使用SyncAgent到适用于SQL Express的版本,而无需更改现有的scheama或使用触发器。我还应该提一下,我大量使用过滤器参数,因为复制中有150多个表,如果没有过滤器,它们会非常大。我读过一些引用说SqlExpressClientSyncProvider不支持过滤器,但我无法验证,因为我找不到对该代码仍然有用的引用。
也许有一个使用SqlServerSyncProvider的Raj示例的刷新
提前感谢任何能指出正确方向的人!
答案 0 :(得分:2)
查看此链接,您可能仍会在评论区域中找到一些下载链接:http://www.8bit.rs/blog/2009/05/debugging-sql-express-client-sync-provider/
请注意,即使示例SqlExpressClientSyncProvider也使用触发器来跟踪逻辑删除表中的删除。同样,您需要在表中包含列以跟踪插入或更新行的时间(日期时间或时间戳列)。
关于过滤,您可以轻松修改适配器中的查询以包含过滤子句。
较新的SqlSyncProvider不支持Sql Change Tracking,因为它实现了自己的跟踪机制。较新的提供商在点对点场景中工作,因此它的跟踪以及来自哪个副本的特定更改来自。