我有一个中央SQL Server数据库,我们在其中存储了多个客户的数据。需要同步的表相似但不相同。例如:
在客户的数据库(用EF包裹的SQL Server CE)中,是一个带有行的表(显然是人为的示例:
public class Person
{
public string FirstName;
public string LastName;
}
然后,在SQL Server上,对应的表行将更像:
public class Person
{
public int CustomerID;
public string FirstName;
public string LastName;
}
额外CustomerID
列的目的当然是因为有许多行来自许多不同的客户,并且我们希望在任何特定时间只能选择一位客户的信息。
我正在研究MS Sync技术以及合并复制,但是最初,这些是我的印象:
同步似乎不适合,因为它似乎是单向的。似乎更希望将一些中央信息存储到您希望同步到实际上是主服务器从属的一个或多个客户的位置。我需要的同步肯定是一个双向过程。
合并复制显示它可能能够完成此操作,但是我不确定它是否可以处理这种特殊情况,因为所有客户信息都存储在一个表中,因此有必要在执行同步之前,请过滤掉特定同步中涉及的行。
我们当前的执行效果不佳。它涉及到SQL Server,首先在上面加载EF,在上面加载反射,在上面加载动态。通过此堆栈,添加到任何表中的每一行都需要花费半秒到一整秒的时间。
有人对如何处理这种情况有任何建议吗?