如何通过 WCF(n 层)同步两个 Sql Compact 版本数据库

Posted

技术标签:

【中文标题】如何通过 WCF(n 层)同步两个 Sql Compact 版本数据库【英文标题】:How to synchronise two Sql Compact edition databases via WCF (n-tier) 【发布时间】:2011-08-25 06:46:48 【问题描述】:

我的情况需要两个 SQL Compact 版本的数据库在 C# 4 Winforms 应用程序中使用 Microsoft Sync Framework 相互同步,但我正在努力寻找一种方法来实现这一点。

我让它在 2 层类型的场景中很容易工作,SqlCeSyncProvider 直接连接到服务器数据库,但我不确定如何通过 WCF 实现这一点。

我从 Microsoft 看到的示例基本上是委托给 WCF 服务内的 SqlSyncProvider,但 SqlCeSyncProvider 似乎没有公开与 ServerSyncProviderProxy 相同的方法。

我可以在服务中使用 SqlCeClientSyncProvider(在这个问题中提到:Using MS Sync Framework to synchronize two SQL CE Dbs),但 SqlCeClientSyncProvider 不公开 GetSchema 或 GetServerInfo 方法。我不知道我是否可以安全地忽略这些方法。

人们只是通过网络公开 SQLCe 数据库并使用 SqlCeSyncProvider 还是我遗漏了使这项工作有效的东西?

【问题讨论】:

【参考方案1】:

SqlCeClientSyncProvider/SyncAgent 组合不支持 SqlCe 数据库之间的同步,除非您想编写自己的使用 Sql Ce 的 DbServerSyncProvider。

改用 SqlCeSyncProvider。

您可以在此处找到示例:Database Sync: SQL Server and SQL Compact N-Tier with WCF

只需修改它,使两个端点都是 Sql Ce

【讨论】:

以上是关于如何通过 WCF(n 层)同步两个 Sql Compact 版本数据库的主要内容,如果未能解决你的问题,请参考以下文章

n 层应用程序中的 WCF 服务层:性能注意事项

sql如何将两个表里的数据同步?

什么是 WCF RIA 服务?

如何通过 WCF 使用 LinqToSql 维护子对象?

WCF / EF / SQL Server / VS2017 / C#:多层应用程序在部署到本地 IIS 10.0 作为托管服务器时出错

企业级应用,持久层架构方案二(双主同步高可用二)