C#如何在Internet上的数据库实例之间同步数据

时间:2011-11-16 21:15:03

标签: sql-server c#-3.0 synchronization identity-column

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

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

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

我们可以使用构建的SQL语句完成所有操作,并根据需要打开/关闭IDENTITY INSERT,但我更喜欢更优雅的解决方案。

谢谢!

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

2 个答案:

答案 0 :(得分:1)

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

  

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

           

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

为您提供subject

上提供良好教程链接的便利

答案 1 :(得分:0)

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

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

除此之外,如果你不能将你的解决方案建立在做这类工具的工具上,我认为你可能会要求维护和同步的噩梦。