【问题标题】:Is it possible to sync two sql express servers with MS Sync Framework是否可以使用 MS Sync Framework 同步两个 sql express 服务器
【发布时间】:2024-10-20 21:40:02
【问题描述】:

我有下一个任务。

假设我们在数据库中有下表

供应商
============
身份证
名称
.....

产品
============
身份证
供应商 ID
名称
.....

我需要能够将主数据库服务器与客户端数据库服务器同步(单向同步),但应该可以在同步过程中应用一些过滤器(例如,对于 cleint DB 1 同步供应商为 John 的所有产品)。据我了解 - SQL Server 复制对我没有帮助,因为在这种情况下我必须使用 SQL Server Enterprise Edition。我研究了 Sync Framework 允许使用过滤器。
但是,是否可以使用 MS Sync Framework 同步两个 sql express 服务器?
我发现同步 SQL Server SQL Server SE 和 SQL Server SQL Server CE

是可行的

【问题讨论】:

  • 是的 - 这是可能的......这取决于您真正需要实现的目标,但可能需要实现“自定义提供程序”

标签: .net sql sql-server microsoft-sync-framework


【解决方案1】:

Sync Framework 中的 SqlSyncProvider 适用于 Sql Server、Sql Express 或 Sql Azure(甚至是即将推出的 Sql 2012 LocalDB)。

查看此示例。 Synchronizing SQL Server and SQL Express

只需将连接字符串更改为指向本地和远程提供程序的 Sql Express,它应该可以工作。

该链接还包含使用过滤器的演练。

【讨论】:

    【解决方案2】:

    看看这个 Stack Overflow 问题:Microsoft Sync Framework, Microsoft Entity Framework 4.1 & SQL CE 4.0

    您可以使用 SqlSyncProvider 来做您想做的事情,但是在客户端使用 Express 数据库时需要大量的自定义工作,特别是如果您想对过滤做任何花哨的事情。您可以通过使用 Sync Framework 所称的“范围”“配置”数据库来定义静态过滤器,但如果您需要进行动态过滤的能力,您将不得不为其大部分开发自定义提供程序。

    开箱即用的客户端仅支持 SQL Ce,但如果您可以切换到使用 SQL Ce,那么随附的 SO 文章中的教程应该会对您有所帮助。

    【讨论】: