3

我们有一个应用程序,要求我们的客户在现场拥有一个 SQL 服务器实例。应他们的要求,应用程序需要将其数据库中的数据与我们数据中心中的副本同步。

我们正在使用 .Net 3.5 SP1。我们需要准确同步数据,包括 IDENTITY 列。

我们更喜欢使用 LINQ to SQL 之类的东西,它可以让我们对映射的实体进行一些简单的选择和插入/更新调用。但是,IDENTITY 列似乎是 LINQ 和类似方法的问题。

我们可以使用内置的 SQL 语句来完成这一切,并根据需要打开/关闭 IDENTITY INSERT,但我更喜欢更优雅的解决方案。

谢谢!

** 编辑 - 我们确实需要编写自己的解决方案,并且确实需要使用 .Net 3.5 SP1 来完成。我不会花时间解释所有原因,但请将建议限制在 .Net 操场内的选项。

4

2 回答 2

1

Microsoft Sync Framework 可以成为您的解决方案。这是来自 Microsoft 的框架描述:

Microsoft Sync Framework 是 Microsoft 的数据同步平台,可用于跨多个数据存储同步数据。Sync Framework 包括一个与传输无关的体系结构,可以插入以 ADO.NET 数据提供程序 API 为模型的特定于数据存储的同步提供程序。


Sync Framework 是一个全面的数据同步解决方案,使开发人员能够构建支持在任何网络拓扑上的任何数据协议上同步任何数据库的解决方案。msdn.microsoft.com

为了您的方便,提供关于该主题的优秀教程的链接

于 2015-11-24T19:38:53.217 回答
0

如果只是需要同步的几个表并且表中没有很多数据(现在和将来),您可以从您的服务器开发某种批量复制并在客户的服务器上批量插入例程。

既然你说你不能使用 SQL Server 复制服务或 SSIS,那么也许可以编写一个备份/恢复过程。您可以对您的数据库进行计划备份,并使其可用于调用应用程序,然后调用应用程序可以复制备份,将其还原到客户服务器上的另一个实例,然后通过任意数量的方法提取您需要的所有数据,并且它将存在于本地客户服务器。

除此之外,我认为如果您的解决方案不能基于用于执行此类操作的工具,您可能会要求维护和同步噩梦。

于 2011-11-21T14:39:57.153 回答