微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 使用WCF代理在N-Tier上使用SQL Framework进行同步框架v.2.1和更改跟踪

我很高兴在应用程序上使用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,尽可能少的更改.客户端已经能够使用任何类型的数据库,它只是需要更改的当前同步过程.

这是我发现的,但没有成功.我已经阅读了关于此事的每个StackOverflow响应,但仍然没有找到实现此功能方法.

> Database Sync:SQL Server and SQL Express N-Tier with WCF:此MS示例适用于SyncOrchistrator,但提供了侧跟踪表和触发器.我无法以这样的方式修改它,即可以在客户端和服务器上使用更改跟踪.
> Sync framework with SQL Server 2008 Change Tracking:StephaneT在此建议,仅通过使用sql Express样本同步提供程序和SyncFx 2.0技术的常规sqlCE方法,仅需要客户端表修改.不幸的是,这个示例sql Express提供程序的所有链接似乎都被删除了,而来自JuneT甚至Liam Cavanagh的MSDN上的其他帖子建议继续使用新的官方sqlServerProvider而不是DbServerProvider的自定义版本.问题是这里没有任何样本实现,我无法通过反复试验来解决这个问题.
> Syncing SQL Server 2008 Databases over HTTP using WCF & Sync Framework:Raj提供了最好的示例(简单且易于转换为sqlCE进程),遗憾的是它还使用了似乎已从Internet上蒸发的sqlExpressClientSyncProvider.它还需要一个锚表来跟踪客户端,我想我可以逃脱它,因为我不允许修改“现有”表上的模式.

那么任何可以帮助我的例子.基本上我想通过代理将现有功能sqlCE SyncFx移植到集成的sql更改跟踪,使用SyncAgent到适用于sql Express的版本,而无需更改现有的scheama或使用触发器.我还应该提一下,我大量使用过滤器参数,因为复制中有150个表,如果没有过滤器,它们会非常大.我读过一些引用说sqlExpressClientSyncProvider不支持过滤器,但我无法验证,因为我找不到对该代码仍然有用的引用.

也许刷新使用sqlServerSyncProvider的Raj示例

提前感谢任何可以指引我正确方向的人!

解决方法

看看这个链接,你仍然可以在评论区找到一些下载链接http://www.8bit.rs/blog/2009/05/debugging-sql-express-client-sync-provider/

请注意,即使示例sqlExpressClientSyncProvider也使用触发器来跟踪逻辑删除表中的删除.同样,您需要在表中包含列以跟踪插入或更新行的时间(日期时间或时间戳列).

关于过滤,您可以轻松修改适配器中的查询以包含过滤子句.

较新的sqlSyncProvider不支持sql Change Tracking,因为它实现了自己的跟踪机制.较新的提供程序在对等场景中工作,因此它跟踪来自哪个副本的特定更改.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐