如何将具有多个客户数据的 master SQL 服务器数据库同步到单个客户数据库

How to sync master SQL Server database with multiple customer data to individual customer db's

我有一个中央 SQL 服务器数据库,我们在其中存储多个客户的数据。 需要同步的 table 相似但不完全相同。例如:

在客户的数据库中(SQL 服务器 CE 用 EF 包装)是一个 table(显然是一个人为的例子),行:

public class Person
{
    public string FirstName;
    public string LastName;
}

然后,在 SQL 服务器上,相应的 table 行将更像是:

public class Person
{
    public int CustomerID;
    public string FirstName;
    public string LastName;
}

额外的 CustomerID 列的目的当然是因为存储了来自许多不同客户的多行,我们希望在任何时候都只能 select 一个客户的信息具体时间。

我正在研究 MS 同步技术以及合并复制,但最初,这些是我的印象:

同步似乎不是 suitable,因为它似乎是单向的。它似乎更适合拥有一些中央信息存储,您希望将这些信息同步到一个或多个客户,这些客户实际上是主人的奴隶。我需要的同步肯定是双向的过程。

合并复制似乎可能能够完成这个,但我不确定它是否会处理这种特殊情况,所有客户信息都存储在单个 table 并且有必要在执行特定同步之前过滤掉要参与特定同步的行。

我们当前的实施性能不佳。它涉及 SQL 服务器,我们在其上加载 EF,在其上加载反射,在其上加载动态。使用此堆栈,添加到任何 table.

的每一行都需要半秒到一整秒的时间

有没有人有更好的处理这种情况的建议?

我只想优化您的自定义解决方案。这听起来不像是一个足够复杂的场景,无法从完整的 Sync/Repl 框架中获益。另外,您应该计划从 CE 迁移到 SqlLite,或者以其他方式离开 CE。