您可以使用 Sync Framework 创建自己的代码来指定要同步的特定表。
using (SqlConnection sqlServerConn =
new SqlConnection(LocalSQLServerConnectionString))
{
using (SqlConnection sqlAzureConn =
new SqlConnection(RemoteSQLAzureConnectionString))
{
DbSyncScopeDescription myScope =
new DbSyncScopeDescription(scopeName);
DbSyncTableDescription Customer =
SqlSyncDescriptionBuilder.GetDescriptionForTable("SalesLT.Customer", sqlServerConn);
DbSyncTableDescription Product =
SqlSyncDescriptionBuilder.GetDescriptionForTable("SalesLT.Product", sqlServerConn);
// Add the tables from above to the scope
myScope.Tables.Add(Customer);
myScope.Tables.Add(Product);
下一部分代码设置本地本地 SQL Server 以进行预配。如果 SQL Server 已经包含表架构和数据,那么它必须做什么?同步框架使用这两个数据库作为数据存储来存储配置信息和有关当前同步状态的状态信息。因此,配置会在您的本地 SQL Server 上创建表来存储此信息。
// Setup SQL Server for sync
SqlSyncScopeProvisioning sqlServerProv =
new SqlSyncScopeProvisioning(sqlServerConn, myScope);
if (!sqlServerProv.ScopeExists(scopeName))
// Apply the scope provisioning.
sqlServerProv.Apply();
下一段代码对远程 SQL 数据库服务器执行相同的操作。但是,它还会根据本地 SQL Server 范围创建要同步的架构数据表。下面是代码的样子:
// Setup SQL Database for sync
SqlSyncScopeProvisioning sqlAzureProv =
new SqlSyncScopeProvisioning(sqlAzureConn, myScope);
if (!sqlAzureProv.ScopeExists(scopeName))
// Apply the scope provisioning.
sqlAzureProv.Apply();
要同步数据库,只需像这样运行控制台应用程序:
SyncConsole.exe –setup
数据库设置只需要进行一次,但是您可能希望多次同步数据库,因此代码分为两个不同的部分,一个用于设置,另一个用于同步。
同步数据的代码同样简单。这是它的样子:
using (SqlConnection sqlServerConn = new SqlConnection(LocalSQLServerConnectionString))
{
using (SqlConnection sqlAzureConn = new SqlConnection(RemoteSQLAzureConnectionString))
{
SyncOrchestrator syncOrchestrator = new SyncOrchestrator
{
LocalProvider = new SqlSyncProvider(scopeName, sqlAzureConn),
RemoteProvider = new SqlSyncProvider(scopeName, sqlServerConn),
Direction = SyncDirectionOrder.UploadAndDownload
};
syncOrchestrator.Synchronize();
}
}
在同步代码中,我们创建两个连接并实例化一个同步协调器,告诉它我们要上传和下载数据。这被认为是双向同步,写入 SQL 数据库或 SQL Server 以移动到另一个。
要同步数据库,只需像这样运行控制台应用程序:
SyncConsole.exe –sync
同步完成后,我们可以查询 SQL 数据库,查看里面的数据。
要查看如何操作的完整示例,请访问this 文章。