使用C#进行Microsoft Sync Framework 2.1的更改跟踪服务器和客户端数据库同步

4
我对asp.net和数据库同步非常陌生。目前,我正在实施一个项目,需要使用更改跟踪实现服务器(SQL Server 2010)<> C#客户端(SQLite)双向数据库同步。我已经阅读了大部分在论坛和Stack Overflow中讨论的教程/示例:

http://dotnetvisio.blogspot.com/2013/07/microsoft-change-tracking-sql-server.html

使用WCF和Sync Framework通过HTTP同步SQL Server 2008数据库

http://msdn.microsoft.com/en-us/library/cc305322.aspx

http://technet.microsoft.com/en-us/library/cc280358(v=sql.105).aspx等等...

然而,我无法想到如何在以下之间实现更改跟踪数据库同步:

[启用更改跟踪的SQL Sever数据库] <> [WCF服务] <> [WPF客户端] <> [SQLite本地数据库]

因此,我的问题是如何连接并建立与本地数据库的同步连接?非常感谢提供逐步教程。谢谢。

只是为了明确,您是直接使用Sync Framework将两个数据库连接在一起,而不是通过第三方进行连接,对吗?您的“图表”模型让我感到困惑。 - JNYRanger
是的,数据库将通过同步框架连接。对于造成的困惑,我很抱歉。 - BlackHat
没问题,看看我的答案。几个月前我在一个项目中第一次使用了同步框架,它比一些文章描述的要容易得多。 - JNYRanger
如果您在客户端使用SQL Server Compact,则几乎可以轻松实现,但如果必须使用SQLite,则会遇到困难。您需要拦截所有对数据库的调用以跟踪知识元数据。 - Timothy Walters
我找到了一篇文章,讲述如何在SQLite中实现它(提示:手动跟踪“脏”和“墓碑”记录以告诉服务器有关它们的信息):http://jtabadero.wordpress.com/2013/01/09/synchronizing-winrtsqlite-using-sync-framework-toolkit/ - Timothy Walters
@TimothyWalters 谢谢您的信息。然而,正如所述,此项目开发禁止进行数据库供应。而且,是的,我需要使用SQLite作为客户端数据库来完成它。 - BlackHat
1个回答

2
假设您正在使用Sync Framework直接将两个数据库进行同步,那么在大多数情况下,您不需要手动实现与SQL Server和/或SQL Server Compact中的更改跟踪组件。最简单的方法是编写一个辅助应用程序,为您处理数据库的作用域和提供,并使Sync Framework自动创建所有必要的更改跟踪对象(表格/函数/存储过程)以使Sync Framework正常工作。请查看MSDN上的这篇文章:定义范围和提供的演示 如果您无法使用提供程序,则需要编写所有自己的提供程序,这很不幸并不像您预期的那样容易,并且没有太多信息可供参考。以下是一些文章,可以帮助您入门: 调试SQL Express客户端同步提供程序 MS的回复:更改跟踪和Sync Framework不兼容 Sync Framework元数据服务 -- 这是有关构建自己的提供程序所需的信息。

我之前已经阅读了你的教程。然而,忘记提到在这个项目开发中禁止使用 provision。只允许使用变更跟踪。 - BlackHat
那么,这有点改变了事情!您可以使用内置的更改跟踪,但需要编写自己的知识提供者。等一下,我有一篇关于此的文章。 - JNYRanger
谢谢您的信息。我明白这对我来说并不是一件容易的事情,这就是为什么我在这里寻求帮助的原因。 :) - BlackHat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接